キャリー【carry】
概要
キャリーとは、数値演算において、ある桁の計算結果がその桁で表現できる範囲を超えたとき、上位の桁へ値を繰り上げる操作のこと。日本語では「桁上がり」あるいは「桁上げ」と呼ぶ。日常的な算術における「繰り上がり」と同じ概念であり、コンピュータ内部の演算でも同様の仕組みを用いる。

10進数で「8+7」を計算すると「15」になる。1の位には5を残し、10に相当する分を10の位へ繰り上げる。この繰り上がりがキャリーである。コンピュータが内部で扱う2進数では、各桁に使える値が「0」と「1」だけのため、キャリーはより頻繁に発生する。例えば「1+1」の結果は「10」となり、下位桁には0が残って上位桁に1が繰り上げられる。
一方、減算では下位桁の値が不足した場合に上位桁から値を借りる操作が生じる。これを「ボロー」(borrow)という。コンピュータの減算は補数表現を使って加算に変換して行うことが多く、その場合はボローもキャリーの一形態として扱われる。
CPUの演算回路は、加算器を使ってある桁で生じたキャリーを次の桁へ順に伝搬させながら計算を進める。この伝搬には時間を要するため、高速なプロセッサではキャリーを効率よく処理するための様々な回路構成が用いられている。また、キャリーの発生状況はフラグレジスタの「キャリーフラグ」に記録される。演算結果が桁上がりを生じた場合は「1」に、そうでない場合は「0」に設定され、プログラムはこの値を条件分岐などに利用できる。
キャリーフラグが特に重要になるのは多倍長演算である。例えば、32ビットのレジスタ2つを組み合わせて64ビットの整数を加算する場合、下位32ビットの加算で生じたキャリーを上位32ビットの加算に引き継ぐ「キャリー付き加算」命令が使われる。これにより、ハードウェアが一度に処理できるビット幅を超えた大きな整数の演算が可能になる。
(2026.6.10更新)