本文へ移動

基本情報技術者試験 · 学習ガイド

2012年度 秋期 午前の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2012年度 秋期 午前の概要
30:00

問題番号から選ぶ

2進数の算術右シフトと減算

基礎理論 · 基数変換 / 算術シフト / 2の補数

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

解答・解説を表示

解答

ウ

解説

まず要点:算術右シフトでは、いちばん上の符号ビット(数の正負を表すビット)を変えずに右へずらし、空いた部分には同じ符号ビットを埋めます。つまり右へ1ビットずらすと、値は半分(1/2倍)になります。負数を2の補数(マイナスを表す表し方)で表しているときも同じです。

解き方

  1. 11010000 のいちばん上のビットは1なので、右へ2ビット算術シフトすると空いた上位2ビットに1が入り、11110100 になります。
  2. 11110100 を10進数に直すと、2の補数で -16 + 4 = -12 です。引かれる数 00010100 は10進数で 20 です。
  3. 00010100 からシフト結果を引くので、20 - (-12) = 32 となります。32を8ビットの2進数にすると 00100000 です。
選択肢 ア不正解
00001000 は10進数の8で、正しい答えの32にはなりません。
選択肢 イ不正解
00011111 は10進数の31で、正しい計算結果の32と1だけ違います。
選択肢 ウ正解
20 から -12 を引くと 32 になり、2進数で 00100000 とぴったり一致します。
選択肢 エ不正解
11100000 は10進数の -32 で、引く順序を逆にしたときに出る値です。

覚えるポイント

  • 算術右シフトでは最上位ビット(符号ビット)が上位桁に補充されます。

間違えやすいところ

  • 「AをBから減じる」を「AからBを引く」と読み違えて符号を逆にしてしまうミスに注意しましょう。

出題の前提:基本情報技術者試験 シラバス(基数・データ表現・論理演算)

出典:IPA『2012年度 秋期 午前』
公式問題冊子 p.3 ↗(www.ipa.go.jp)

2012年度 秋期 午前

参照した公式資料

IPAが公開した2012年度 秋期 午前の問題・解答資料です。