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進法の解き方を必ず一読下さい。

ポイント:
表記方法に注意。数字の後ろにある(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^1)+(1x2^0)
=(1x2)+(1x1)
= 2 + 1
= 3

2進数10は、

 (1x2^1)+(0x2^0)
=(1x2)+(0x1)
= 2 + 0
= 2

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

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

n進法

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

今回は、2進数11や10を10進数に変換する際に公式を利用しましたが、2桁の2進数程度であれば10進数でいくつになるかは覚えておくようにしましょう。


解答:B

設問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進数に戻す手順での計算方法を記載しておきます。

※すみません。ご指摘いただきました。以下が正解です。
16(10)=10000(2)



解答:I

8 Responses to “SPI練習問題-問4(n進法)”

  1. hide より:

    SPI練習問題-問4(n進法)の解答と解説ですが、設問が2個に対して解答・解説が一つしかありません。

    • 管理人 より:

      hide様

      コメントありがとうございます。
      設問2の解説を追記致しました。ご確認下さい。

  2. ヒロセ より:

    設問1の回答はEではなく、Bではないでしょうか?

    • 管理人 より:

      ヒロセ様
      コメントありがとうございます。
      計算内容に誤りはなかったので解答部分のみ修正させて頂きました。Bが正解ですね。

  3. 名無し より:

    設問2で、10進数に直してから2進法で計算し直すと、答え「10100」になってしまうのですが・・・

    • 管理人 より:

      コメントありがとうございます。
      設問2の解説に計算方法を追記させて頂きました。

      ご確認宜しくお願い致します。

  4. ななし より:

    設問(2)を2進法のまま計算すると10000(2)になると解説に記載されておりますが、10進法に戻して計算した後2進法に再び戻す手法では1000(2)と解答が異なっています。
    どちらが正しい答えでしょうか。

    • 管理人 より:

      ななし様

      ご指摘ありがとうございます。
      「10000(2)」が正しい値となります。

      今後ともよろしくお願いいたします。

コメントを残す

*

このページの先頭へ