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進数に直しています。


もっと桁が増えても同じ要領で計算できますが、そういう時は素直に関数電卓を使います。