IPA過去問ドリル

平成24年度 秋期 基本情報技術者試験 午前 問1

テクノロジ/基礎理論

8ビットの2進数11010000を右に2ビット算術シフトしたものを,00010100から減じた値はどれか。ここで,負の数は2の補数表現によるものとする。

出典:平成24年度 秋期 基本情報技術者試験 午前 問1

正解:ウ

解説

算術シフトでは符号ビットを保持したまま右にビットをずらします。11010000は8ビット2の補数で-48を表し,右に2ビット算術シフトすると-48÷4=-12(11110100)になります。00010100(20)からこの値を引くと,20-(-12)=32=00100000となります。

選択肢ごとの解説

  • 誤り。算術シフトを論理シフト(符号ビットを考慮せず0を補う)として計算した場合などに得られる値です。
  • 誤り。減算の符号を取り違えて20+(-12)の絶対値を誤計算した場合などに生じる値です。
  • 正しい。11010000を算術右シフト2ビットすると11110100(-12)になり,00010100(20)から引くと20-(-12)=32=00100000になります。
  • 誤り。シフト後の値をそのまま2の補数表現として答えてしまった場合などに生じる値です。
基本情報技術者の過去問を演習モードで解く