基礎理論
8ビット2の補数表現で、正の数どうしの加算結果がオーバーフローしたと判定できる条件はどれか。
ア.演算結果の最上位ビット(符号ビット)が1になった正解
イ.演算結果のすべてのビットが0になった
ウ.演算結果に桁上がり(キャリー)が発生した
エ.演算結果の最下位ビットが1になった
解説
2の補数のオーバーフローは「エレベーターの定員オーバーランプ」みたいなもの。正の数どうしを足したのに結果がマイナス(符号ビット=1)になったら、それはランプが点灯したサイン。定員(表現範囲)を超えたのに気づかず乗り続けてしまった状態!
なぜ ア が正解か
8ビット2の補数で表現できる正の最大値は01111111(=127)。正の数どうしを加算して127を超えると、結果が10000000以上になり符号ビット(MSB)が1になる。2の補数ではMSB=1は負の数を意味するため、「正+正=負」という矛盾が起きたとき、それがオーバーフローの証拠。
出典: AI生成問題(学習用)