計算機算術
符号なしの整数どうしの足し算で、結果が表せる範囲を超えた(桁あふれした)ことを判定する方法として正しいものはどれか。
- A結果の最上位ビットが1になったかどうかを見る
- B2つの入力の最上位ビットが等しいかどうかを見る
- C最上位のビットから外へ桁上げが出たかどうかを見る
答えと解説を見る
正解:C. 最上位のビットから外へ桁上げが出たかどうかを見る
符号なしの足し算では、最上位のビットからさらに上へ桁上げが出たとき、結果がビット数で表せる最大値を超えています。CPUではこの桁上げがキャリーフラグとして残るので、それを調べれば判定できます。結果の最上位ビットが1になるのは、単に大きな数になっただけで桁あふれではありません。最上位ビットへの桁上げと最上位ビットからの桁上げの違いを見るのは、符号付きの数のオーバーフローの判定方法です。
- A. 最上位ビットが1でも、範囲内の大きな数のことがあります。
- B. 入力の最上位ビットを比べるだけでは判定できません。
- C. 正しい。最上位からの桁上げ(キャリー)で判定します。