第2話 n進数に翻訳するには?
実は、簡単な方法があります。
例えば、13を2進数に翻訳するには、
13÷2=6・・・1
6÷2 =3・・・0
3÷2 =1・・・1
1÷2 =0・・・1
を商が0になるまで繰り返して2で割り、
余りを逆順に並べた1101が答えになります。
つまり、13(10)=1101(2)です。
4876を例にすると、
4876÷2=2438・・・0
2438÷2=1219・・・0
1219÷2= 609・・・1
609÷2 = 304・・・1
304÷2 = 152・・・0
152÷2 = 76・・・0
76÷2 = 38・・・0
38÷2 = 19・・・0
19÷2 = 9・・・1
9÷2 = 4・・・1
4÷2 = 2・・・0
2÷2 = 1・・・0
1÷2 = 0・・・1
ですから
4876(10)=1001100001100(2)
です。
4876を5進数に直すには、
4786÷5=957・・・1
977÷5 =195・・・2
195÷5 = 39・・・0
39÷5 = 7・・・4
7÷5 = 1・・・2
2÷5 = 0・・・2
から
4876(10)=224021(5)
です。
数が大きくなると大変ですから、
4876(10)=1001100001100(2)
の場合、表記は次のようにします。
では、みなさんプログラミングに挑戦しましょう。
もちろん、同様なことの繰り返しですから、
関数の再帰的使用が適しているでしょう。
何進数に翻訳するかはキーボードから入力できるようにしましょう。