SPI練習問題-問4(n進法)
2進数の足し算、引き算の問題
[設問1]11(2)+10(2)の計算結果を2進数で表せ。
A 100(2)
B 101(2)
C 110(2)
D 111(2)
E 1000(2)
F 1001(2)
G 1010(2)
H 1101(2)
[設問2]1001(2)+111(2)の計算結果を2進数で表せ。
A 1(2)
B 10(2)
C 11(2)
D 100(2)
E 101(2)
F 110(2)
G 111(2)
H 1000(2)
I 10000(2)
解答と解説
使用する公式:
n進法の解き方に関しては、『SPI n進法 ~練習問題と徹底解説!~』のページで詳しく解説しているので、参考にしてください。早く解く方法なども紹介しています。
ポイント:
表記方法に注意。数字の後ろにある(2)はその数字が2進数であることを表しています。何進数の数字なのかを明確にするためですね。今回の設問では(2)しかありませんが、101(10)と言った場合もあるので、パッと見で2進数だと勝手に思い込まないようにする必要があります。
2進数どうしの計算は、一旦10進数に変換してから計算し再度、2進数に戻す方法がありますが、短時間で解くためには2進数のままで計算できるようになりましょう。
設問1の解答と解説:
2進数のままで計算する場合
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で割っていきその余りを見ていきます。
よって、求める解答は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の位、千の位も計算していくと下図のようになります。
よって、求める解答は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進数に変換すると次の通り。
16(10)=10000(2)
解答:I
SPI練習問題-問4(n進法)の解答と解説ですが、設問が2個に対して解答・解説が一つしかありません。
hide様
コメントありがとうございます。
設問2の解説を追記致しました。ご確認下さい。
設問1の回答はEではなく、Bではないでしょうか?
ヒロセ様
コメントありがとうございます。
計算内容に誤りはなかったので解答部分のみ修正させて頂きました。Bが正解ですね。
設問2で、10進数に直してから2進法で計算し直すと、答え「10100」になってしまうのですが・・・
コメントありがとうございます。
設問2の解説に計算方法を追記させて頂きました。
ご確認宜しくお願い致します。
設問(2)を2進法のまま計算すると10000(2)になると解説に記載されておりますが、10進法に戻して計算した後2進法に再び戻す手法では1000(2)と解答が異なっています。
どちらが正しい答えでしょうか。