コンピュータの基礎応用問題

8ビット符号付き整数(2の補数表現)で表せる最大値「01111111」(+127)に1を加算したとき、演算結果はどうなるか。

A.桁上がりが発生して9ビット目が立ち、結果は「100000000」(+128)として正しく格納される
✗ 8ビット整数では9ビット目を格納できません。上位ビットへの桁上がりはオーバーフローとして扱われます。
B.オーバーフローが発生し、結果は「10000000」となって-128として解釈される← 正解
✓ 正解です。127+1は8ビット2の補数表現の範囲を超え、結果の「10000000」は符号ビットが1となり-128と解釈されます。これが符号付きオーバーフローです。
C.演算器がオーバーフローを検出して演算を中断し、結果は最大値の+127のままとなる
✗ 一般的なCPUの演算器は自動的に値を保持しません。オーバーフローフラグをセットしつつ演算結果をそのまま格納します。
D.8ビットを超えるため演算結果はすべてゼロとなり、「00000000」(0)として格納される
✗ ビット数超過により結果がゼロになるのではありません。8ビットに収まる下位8ビットの値「10000000」が格納されます。

基本情報技術者試験 の問題一覧