10進数を2進数に変換する方法


はじめに

今回は、10進数を2進数に変換する方法を考えていきます。

原理

10進数と2進数の関係といたしましては、以下の通りです。

a_0*10^0 + a_1*10^1 + a_2*10^2 + ・・・ =
b_0*2^0 + b_1*2^2 + b_2*2^2 + ・・・
(a,bはどちらも整数としています。)

これだとわかりにくいので、例として、14を2進数に置き換えてみると、

4*10^0 + 1*10^1(10進数:14) = 0*2^0 + 1*2^1 + 1*2^2 + 1*2^3(2進数:1110)

というようになります。これを踏まえて、2進数に変換する流れを書くと

① numberをなんらかの整数とする(例として14を考える)

② numberを2で割ったあまりを求める(例だと、0*2^0 + 1*2^1 + 1*2^2 + 1*2^3/2の余りなので0)

③ ②で出した余りが2^0の係数となり、最初の桁は0となる。

④ numberを2で割る(例で言うと、1*2^0 + 1*2^1 + 1*2^2となる)

⑤ あとは②③④を繰り返すだけで2進数に変換することができる。

number = 14 

number % 2 # → 0
number / 2 # → 7
number % 2 # → 1
number / 2 # → 3
number % 2 # → 1
number / 2 # → 1
number % 2 # → 1
number / 2 # → 0

余りの部分だけ見ていくと
number % 2 # → 0
number % 2 # → 1
number % 2 # → 1
number % 2 # → 1
→ 1110