キャリーフラグ 【carry flag】

概要

キャリーフラグ(carry flag)とは、CPU(マイクロプロセッサ)のフラグレジスタ(ステータスレジスタ)に用意されているビットの一つで、加算命令で最上位桁からの繰り上がりが起きたことを示すもの。大きな数の加算処理などに用いられる。

CPUには加算命令が用意されており、レジスタに格納されたを下位ビットから順に加算していく。このとき、最上位桁の加算が「1」+「1」だと結果は一桁繰り上がって「10」となるはずだが、これ以上桁がないため下位側の「0」しか格納することができない。このようなときに、キャリーフラグのを「1」にして、最上位桁からの繰り上がりが生じたことを知らせる。

これとは逆に、減算で最下位桁から繰り下がりが生じた場合には「ボローフラグ」を「1」にすることによって知らせる。CPUによってはキャリーフラグとボローフラグが共通になっている場合や、キャリーフラグをさらに他の用途にも転用する場合がある。

レジスタ長を超える加算

キャリーフラグがない場合にはレジスタ長を超える結果になる加算をうことは困難だが、キャリーフラグのを用いることで、長い桁の加算を容易に実装できる。例えば、レジスタ長が8ビットCPUで16ビットの加算をいたければ、8ビットずつに区切り、まず下位8ビットの加算をう。

下位側で繰り上がりがあればキャリーフラグに反映されるため、上位8ビットの加算をう際に最下位ビットにキャリーフラグのを加算してやれば、繰り上がりを反映した加算をうことができる。より長いビット数の場合でも、一つ手前の加算で生じたキャリーフラグの最下位ビットに足していけば容易に全体を加算することができる。

これはちょうど複数桁の2つの数の足し算を筆算で計算する手順に似ている。筆算では小さい桁から順に同じ桁同士で一桁の足し算をい、結果が10を超えたら左隣の桁の上に「1」と書き入れ、3つので足し算をう。レジスタビット長ごとに加算を繰り返すのはこの操作と同じであり、繰り上がりを「1」と書き入れるスペースがキャリーフラグにあたる。

(2024.1.25更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる