SPI練習問題-問4(n進法)

2進数の足し算、引き算の問題

[設問1]11(2)+10(2)の計算結果を2進数で表せ。

[解答群]
 100(2)
 101(2)
 110(2)
 111(2)
 1000(2)
 1001(2)
 1010(2)
 1101(2)

[設問2]1001(2)+111(2)の計算結果を2進数で表せ。

[解答群]
 1(2)
 10(2)
 11(2)
 100(2)
 101(2)
 110(2)
 111(2)
 1000(2)
 10000(2)



解答と解説

使用する公式:
n進法の解き方に関しては、『SPI n進法 ~練習問題と徹底解説!~』のページで詳しく解説しているので、参考にしてください。早く解く方法なども紹介しています。

ポイント:
表記方法に注意。数字の後ろにある(2)はその数字が2進数であることを表しています。何進数の数字なのかを明確にするためですね。今回の設問では(2)しかありませんが、101(10)と言った場合もあるので、パッと見で2進数だと勝手に思い込まないようにする必要があります。

2進数どうしの計算は、一旦10進数に変換してから計算し再度、2進数に戻す方法がありますが、短時間で解くためには2進数のままで計算できるようになりましょう。

設問1の解答と解説:

2進数のままで計算する場合

n進法
 
1の位の足し算は、1+0=1となります。10の位の足し算は、1+1=10となります。10進数どうしの計算であれば2になるのですが、2進数どうしの計算なので、桁が繰り上がり10となります。

よって、求める解答は、101.

10進数に変換して計算する場合
2進数を10進数に変換する場合は、2進数の一桁目から2の0乗、2の1乗、2の2乗・・・と順にかけて更に各桁を足します。

よって、2進数11は次の通り。
 (1x2¹)+(1x2⁰)
=(1x2)+(1x1)
= 2 + 1
= 3

2進数10は次の通り。
 (1x2¹)+(0x2⁰)
=(1x2)+(0x1)
= 2 + 0
= 2

よって、2進数11と10を10進数に変換すると3と2になります。このことより、10進数どうしで足し算すると、3+2=5 となります。これを再度、2進数に変換する必要があります。

10進数を2進数に変換する場合は、2で割っていきその余りを見ていきます。

10進数から2進数へ変換

よって、求める解答は101(2)

今回は、2進数11や10を10進数に変換する際に公式を利用しましたが、2桁の2進数程度であれば10進数でいくつになるかは頭の中で覚えておき、瞬時に出てくるようにしましょう。最低限、『2進数、8進数、10進数、16進数の対応表』は覚えておくようにしてください。

解答:B




設問2の解答と解説:

2進数のままで計算する場合
解き方は設問1と全く同様です。

2進数「1001」と「111」を1の位から順に計算していきます。1の位は双方1なので「1+1=10」となります。よって、計算結果の1桁目は「0」。10の位は「0」と「1」ですが、1の位の計算で桁上がりが発生しているのでそれを加え「1+1+0=10」となり、2桁目も「0」となります。同じように100の位、千の位も計算していくと下図のようになります。

n進法のときかた

よって、求める解答は10000(2)

10進数に変換して計算する場合
2進数を10進数に変換する場合は、2進数の一桁目から2の0乗、2の1乗、2の2乗・・・と順にかけて更に各桁を足します。

よって、2進数「1001」を10進数に変換すると次の通り。

 (1x2³)+(0x2²)+(0x2¹)+(1x2⁰)
=(1x8)+(0x4)+(0x2)+(1x1)
=8+0+0+1
=9

さらに、2進数「111」を10進数に変換すると次の通り。

 (1x2²)+(1x2¹)+(1x2⁰)
=(1x4)+(1x2)+(1x1)
=4+2+1
=7

よって、2進数「1001」と「111」を10進数に変換すると「9」と「7」であり、10進数同士での足し算結果は9+7=16となります。これを再び2進数に変換すると次の通り。

2進数同士の足し算

16(10)=10000(2)

解答:I