10進数から2進数への変換
10進数から2進数へ変換する方法というと
2で割って行く方法がメジャーですが、僕はそのやり方が苦手なんで別の方法でやっています。
割り算方式だと、割り算を間違えたり、
出てきた 0 と 1 をどっちの順番で見たらいいのか忘れるという体たらくな人(僕)でも、
8桁くらいなら暗算でできるようになると思います。
以下手順、
まず、2進数の各桁を覚えます。2倍2倍になっていくだけなんで、難しくないと思います。
ついでに各桁から 1 引いたときの形(1が並ぶだけ)も覚えておきます。
1 .. 0000 0001 2 .. 0000 0010 4 .. 0000 0100 => 3 .. 0000 0011 8 .. 0000 1000 => 7 .. 0000 0111 16 .. 0001 0000 => 15 .. 0000 1111 32 .. 0010 0000 => 31 .. 0001 1111 64 .. 0100 0000 => 63 .. 0011 1111 128 .. 1000 0000 => 127 .. 0111 1111
計算するときは、以下の要領で行います。
(例1) 10進数の 24 を 2進数に変換したい
24 = 16 + 8 と考えて、
0001 0000 (16) + 0000 1000 ( 8) = 0001 1000 (24)
と計算します。
または、24 = 31 - 7 と考えて、
0001 1111 (31) - 0000 0111 ( 7) = 0001 1000 (24)
と計算します。この場合は足し算で考えたほうが楽だと思います。
(例2) 10進数の 53 を 2進数に変換する
53 = 63 - 10 と考えて、
0011 1111 (63) - 0000 1010 (10) * 10 = 8 + 2 = 0011 0101 (53)
と計算します。こっちは引き算で考えたほうが楽だと思います。そのへんはお好みで。
(53 を 16進数にしたら H'35 になります。ちょっと面白い)
10進数から16進数への変換の際は10進数から2進数、そして16進数に直しています。
もっと桁が増えても同じ要領で計算できますが、そういう時は素直に関数電卓を使います。