まず 0 以上の 10 進数の整数を 2 進数に基数変換する方法について説明します。
これは次のようにして行うことができます。
A を 0 以上の 10 進数の整数とする
次は逆に 2 進数を 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 進数に変換してみます。
A = 12 とする
逆に 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 進数に変換してみます。
A = 123 とする
逆に 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