本文へスキップ

平成29年度 春期 ITパスポート試験 問72

この問題の解説と、これまでの解答の記録です。

問72
頻出度★★☆

二つの2進数01011010と01101011を加算して得られる2進数はどれか。ここで,2進数は値が正の8ビットで表現するものとする。

出典 平成29年度 春期 ITパスポート試験 問72
解説

問 72

  • 不正解ア

    00110001(10進で49)は、桁上げを無視して各桁を別々に加えた(=排他的論理和 XOR を取った)結果です。2進数の加算では桁上がりを次の桁へ繰り上げる必要があり、それを行っていないため誤りです。

  • 不正解イ

    01111011(10進で123)は、二つの数の論理和(OR、各桁でどちらかが1なら1)を取った結果であり、加算ではありません。加算では桁上がりが発生するため、この値にはなりません。

  • 不正解ウ

    10000100(10進で132)は、正しい和 197(11000101)とは一致しない誤った値です。桁上げの処理を途中で誤ると生じるような値で、正しい筆算の結果ではありません。

  • エ

    正解 2進数の加算を筆算で行います。右端の桁から順に、桁上がり(キャリー)を考慮しながら足していきます。01011010 と 01101011 を各桁で加えると、bit0 は 0+1=1、bit1 は 1+1=10 で 0 と桁上げ 1、bit2 は 0+0+1=1、bit3 は 1+1=10 で 0 と桁上げ 1、bit4 は 1+0+1=10 で 0 と桁上げ 1、bit5 は 0+1+1=10 で 0 と桁上げ 1、bit6 は 1+1+1=11 で 1 と桁上げ 1、bit7 は 0+0+1=1 となり、結果は 11000101 です。10進数で確かめると 01011010=90、01101011=107 で、和は 197、これを2進数にすると 11000101 なので、正解は「エ」です。

ここがポイント
  • 2進数の加算は、各桁を右から足し、1+1=10 のように桁上がり(キャリー)を上位桁へ繰り上げて計算する。
  • 検算として、2進数を10進数に変換して和を求め(90+107=197)、再び2進数へ戻す(11000101)と確実に確認できる。
用語

解答の記録