まず 0 以上の 10 進数の整数を 2 進数に基数変換する方法について説明します。
これは次のようにして行うことができます。

0 以上の 10 進数の整数を 2 進数に変換

A を 0 以上の 10 進数の整数とする

  1. 桁数 n ビットを決める ※ 1 以上にする
  2. A を 2 で割る。この時の商を $q_0$、余りを $r_0$ とする
  3. $q_0$ を 2 で割る。この時の商を $q_1$、余りを $r_1$ とする
  4. $q_1$ を 2 で割る。この時の商を $q_2$、余りを $r_2$ とする
  5. これを n 回繰り返す。最後の商を $q_{n-1}$、余りを $r_{n-1}$ とする
  6. 余りを $r_{n-1}$ から $r_0$ まで順に並べる
  7. 0b を先頭に付ける ※ 2 進数を意味する接頭語
  8. n ビットの 2 進数 0b $r_{n-1}r_{n-2}\cdots r_1r_0$ が得られる

次は逆に 2 進数を 10 進数の整数に基数変換します。

2 進数を 0 以上の 10 進数の整数に変換

n ビットの 2 進数が 0b $r_{n-1}r_{n-2}\cdots r_1r_0$ で与えられる時、

A = $r_{n-1}\cdot2^{n-1} + r_{n-2}\cdot2^{n-2} + \cdots r_1\cdot2^1 + r_0\cdot2^0$

と 10 進数が得られる

では例として A = 12 を桁数 n = 4 で 2 進数に変換してみます。

例: 12 を 2 進数に変換

A = 12 とする

  1. 桁数を n = 4 ビットとする
  2. A = 12 を 2 で割る。商は $q_0$ = 6、余りは $r_0$ = 0
  3. $q_0$ = 6 を 2 で割る。商は $q_1$ = 3、余りは $r_1$ = 0
  4. $q_1$ = 3 を 2 で割る。商は $q_2$ = 1、余りは $r_2$ = 1
  5. $q_2$ = 1 を 2 で割る。商は $q_3$ = 0、余りは $r_3$ = 1
  6. 余りを $r_{3}$ から $r_0$ まで順に並べると 1100
  7. 0b を先頭に付ける
  8. n = 4 ビットの 2 進数 0b1100 が得られる

逆に 0b1100 を 10 進数の 0 以上の整数に変換してみます。

例: 0b1100 を 10 進数の 0 以上の整数に変換

A = $1\cdot 2^{3} + 1\cdot 2^{2} + 0\cdot 2^{1} + 0\cdot 2^{0}$

 = 1・8 + 1・4 + 0・2 + 0・1

 = 8 + 4 + 0 + 0 = 12

もう少し難しい例として、今度は A = 123 を桁数 n = 8 で 2 進数に変換してみます。

例: 123 を 2 進数に変換

A = 123 とする

  1. 桁数を n = 8 ビットとする
  2. A = 123 を 2 で割る。商は $q_0$ = 61、余りは $r_0$ = 1
  3. $q_0$ = 61 を 2 で割る。商は $q_1$ = 30、余りは $r_1$ = 1
  4. $q_1$ = 30 を 2 で割る。商は $q_2$ = 15、余りは $r_2$ = 0
  5. $q_2$ = 15 を 2 で割る。商は $q_3$ = 7、余りは $r_3$ = 1
  6. $q_3$ = 7 を 2 で割る。商は $q_4$ = 3、余りは $r_4$ = 1
  7. $q_4$ = 3 を 2 で割る。商は $q_5$ = 1、余りは $r_5$ = 1
  8. $q_5$ = 1 を 2 で割る。商は $q_6$ = 0、余りは $r_6$ = 1
  9. $q_6$ = 0 を 2 で割る。商は $q_7$ = 0、余りは $r_7$ = 0
  10. 余りを $r_{7}$ から $r_0$ まで順に並べると 01111011
  11. 0b を先頭に付ける
  12. n = 8 ビットの 2 進数 0b01111011 が得られる

逆に 0b01111011 を 10 進数の 0 以上の整数に変換してみます。

例: 0b01111011 を 10 進数の 0 以上の整数に変換

A = $0\cdot 2^{7} + 1\cdot 2^{6} + 1\cdot 2^{5} + 1\cdot 2^{4} + 1\cdot 2^{3} + 0\cdot 2^{2} + 1\cdot 2^{1} + 1\cdot 2^{0}$

 = 0・128 + 1・64 + 1・32 + 1・16 + 1・8 + 0・4 + 1・2 + 1・1

 = 64 + 32 + 16 + 8 + 0 + 2 + 1 = 123