平成19年 春期 ソフトウェア開発技術者 午前 問1

負数を2の補数で表現する32ビットの二つの整数データを加算したとき、あふれが生じるの必要十分条件はどれか。

 ア  ともに正で和が231以上、又はともに負で絶対値の和が231以上
 イ  ともに正で和が231以上、又はともに負で絶対値の和が231より大きい
 ウ  ともに正で和が231より大きい、又はともに負で絶対値の和が231以上
 エ  ともに正で和が231より大きい、又はともに負で絶対値の和が231より大きい


答え イ


解説
2の補数では最上位ビットは符号で0が正、1が負なので正の数の最大値は
 0111 1111 1111 1111 1111 1111 1111 1111
になります。
これは、232-1です。
次に負の数で絶対値が最も大きいのは
 1000 0000 0000 0000 0000 0000 0000 0000
になります。
これの、絶対値を2進数で表すには各けたの0・1を反転して、1を加えるので、0・1を反転させると
 0111 1111 1111 1111 1111 1111 1111 1111
になり、これに1を加えると
 1000 0000 0000 0000 0000 0000 0000 0000
になります。これは、232です。
したがって、正の数の場合は加算した結果が232-1を超えた場合、負の場合は加算した結果が232を超えた場合、けたあふれが発生します。


キーワード
・2の補数

キーワードの解説

戻る 一覧へ 次へ