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

n進法に関する次の問題に答えなさい。



[設問1]10進法の57は2進法ではいくつか?

[解答群]
 28
 114
 1111
 100111
 111001
 いずれでもない



[設問2]5進法の324は10進法ではいくつか?

[解答群]
 17
 24
 34
 85
 89
 いずれでもない



[設問3]3進法の102+122は3進法ではいくつか?

[解答群]
 29
 102
 232
 1001
 1002
 いずれでもない

解答と解説

使用する公式:
n進法の問題は難しくないのでいかに正確に早く答えるかが大切。n進法の計算のパターンは下記の3つしか存在しない。しかし、多くの人は(3)の変換方法を知らない。そのため、(3)の変換問題が出た場合は、一度(1)で10進法に変換し、更に(2)でn進法に変換するといった方法をとります。これでは計算する量が増えてしまい、間違える可能性も高くなるし、時間もかかってしまいます。

下記の(1)~(3)の計算方法はしっかり覚えておきましょう。

(1)10進数からn進数への変換
(2)n進数から10進数への変換
(3)n進数からn進数への変換

(1)10進数からn進数への変換方法
これは他にもやり方はあるのですが、確実で早いのがやはり一般的に言われている10進数の数をnで割っていくやり方です。

10進数97を2進数、8進数、16進数に変換すると次のようになります。

n進数

 10進数97は、2進数に変換すると、1100001
 10進数97は、8進数に変換すると、141
 10進数97は、16進数に変換すると、61

となります。これは、3進数であろうが、7進数であろうがやり方は同じでn進数のnで割っていくことで算出できます。

(2)n進数から10進数への変換方法
n進数を10進数に変換する場合は、1桁目からn^0、n^1、n^2・・・を順番に掛けていったものを合計することで算出できます。2進数、8進数、16進数を10進数に変換する場合は次のようになります。

n進法

(2)n進数から10進数への変換方法【別解-最速の解き方】
n進数から10進数へ変換する場合は別の解き方があります。慣れるとこちらの方が簡単で早いので、是非、覚えておいてください。

方法はn進数の1桁目を除く各桁にnを掛けて隣の桁を足すだけなのですが、少し特殊な計算をします。。

まず、n進数の各桁に「x n +」を付加します。2進数『111101』を10進数に変換したい場合であれば、nは2なので「x 2 +」を次のように付加します。。

 1x2+x2+x2+x2+x2+

そして、特殊な計算はここからなのですが、通常の計算は足し算より掛け算を優先的に計算するのですが、ここでは優先度関係なく左から順番に計算していきます。

上の例であれば、次の様になります。

 ①1x2=2
 ②2+1=3
 ③3x2=6
 ④6+1=7
 ⑤7x2=14
 ⑥14+1=15
 ⑦15x2=30
 ⑧30+0=30
 ⑨30x2=60
 ⑩60+1=61

答え61

先程の例で2進数、8進数、16進数を10進数に変換する場合は、次のようになります。実に簡単ですね。

n進法

(3)n進数からn進数への変換方法
2進数から8進数に変換する場合
2進数を下1桁から3桁ずつで区切り線をいれていきます。2進数11101101の場合であれば、

 11101101 

3桁ずつ区切っていく上で、桁が足りない場合は上記のように0を補充して3桁にします。次にこの区切った3桁ごとに8進数に置き換えます。

 11101101 
  ↓   ↓   ↓
  3   5   5

よって、2進数11101101を8進数に置き換えると、355となります。

2進数から16進数に変換する場合
2進数から8進数に変換する場合は、3桁ごとに分けましたが、16進数の場合は4桁ごとに分けます。2進数11101101の場合であれば、次のようになります。

 11101101

今度は丁度4桁ごとに分割できたので、0の補充は必要ありません。引き続き分割した4桁ごとに16進数に変換します。

 11101101
   ↓    ↓
   E    D

よって、2進数11101101を16進数に置き換えると、EDとなります。

8進数から2進数に変換する場合
これは、2進数から8進数へ変換する方法の逆の手順になります。8進数355を2進数に変換する場合、各桁を2進数に置き換えます。2進数に置き換えた際に3桁にならない場合は0を補充して3桁にして下さい。

  3   5   5
  ↓   ↓   ↓
 11101101 

3のみ2進数に変換すると11で1桁たりないので左端に0を付加し、3桁にしています。

16進数から2進数に変換する場合
2進数から16進数へ変換する方法の逆の手順になります。16進数EDを2進数に変換する場合、各桁を2進数に置き換えます。2進数に置き換えた際に4桁にならない場合は0を補充して4桁にして下さい。

   E    D
   ↓    ↓
 11101101

どうでしょう。これらの変換方法を一通り覚えておけばn進法の問題は解くことができます。あとは、回数をこなして慣れておくことが大切です。また、できれば下記の2進数、10進数、16進数の対応表を頭の中にいれておけば、かなりの短時間で問題を解くことができるようになります。

n進法



設問1の解説:
10進数から2進数の変換は、2で割っていく方法でしたよね。

n進法

よって、解答は、111001

解答:E


設問2の解説:
n進数から10進数への変換方法は「使用する公式」のところでも記載しましたが、2通りあります。最も一般的な解き方は、各桁にn^0、n^1、n^2・・・を掛けていく方法です。

 3x(5^2) + 2x(5^1) + 4x(5^0) = 3x25+2x5+4x1 = 89

もう1つの解き方は、1桁目を除き各桁にnを掛けて横の桁と足していく。ただし、注意点として本来の計算なら足し算より掛け算を優先にすべきですが、この方法で解く場合は、優先度は関係なしに左から順番に計算していくということでしたよね。

まず、324の各桁に5を掛けて隣のけたと足し算します。式としては次のようになります。

 3x5+2x5+4=

これを左から順番に計算していくと下記のようになります。

 3x5+2x5+4=15+2x5+4=17x5+4=85+4=89

解答:E


設問3の解説:
この問題は3進法の足し算になります。一旦10進法に置き換えて計算する方法もありますが、時間を節安するためにも3進法のままで計算できるりょうにしましょう。

  102
 +122
————
  224

普通に計算すると224となってしまいます。しかし、これは3進法なので表現できる数値は0、1、2の3つのみです。3以上の数値は桁上がりが発生します。
よって、桁上がりを考慮すると次のようになります。

  102
 +122
————
 1001

どうしても桁上がりの計算がややこしく感じる方は、10進数に置き換えて計算する方が早い場合もあります。しかし、その場合は計算後、再度3進数に戻すのを忘れないようにして下さい。ひっかけで、10進数で計算した結果が解答群に入っている場合などもあります。

解答:D

コメントを残す

*

このページの先頭へ