整数を2進数に変換するには、次々に2で割ってゆき余りを逆に並べれば
よいことはよく知られています。たとえば10進数の57は2進数で111001。
これは
57 = 1 × 2^5 + 1 × 2^4 + 1 × 2^3 + 0 × 2^2 + 0 × 2^1 + 1 × 2^0
↑
4桁目
と書くことができるので、たとえば4桁目の数1は、 4回目に2で割った余
りが1ということで求まります。
少数の場合は、0.1は1の位(2^0の項)は0ですから
0.1 = 0×2^0 + a×2^-1 + b×2^-2 + c×2^-3 + ......
とおくと(ただし、a,b,c,..は0または1)、
0.1×2 で a は 1の位(2^0)に現れ、
0.1×4 で b は 1の位(2^0)に現れ、
0.1×8 で c は 1の位(2^0)に現れ、
というわけですから、小数点以下の数は次のように計算できます。
1の位
0,1 × 2 = 0.2 0
0.2 × 2 = 0.4 0
0.4 × 2 = 0.8 0
0.8 × 2 = 1.6 1 次の計算で1桁目の1を捨てる
0.6 × 2 = 1.2 1 次の計算で1桁目の1を捨てる
0.2 × 2 = 0.4 0
0.4 × 2 = 0.8 0
0.8 × 2 = 1.6 1 次の計算で1桁目の1を捨てる
0.6 × 2 = 1.2 1 次の計算で1桁目の1を捨てる
0.2 × 2 = 0.4 0
..........................
(以下繰り返し)
従って、1の位に現れた数(最初が小数点第1位)を上から順に並べ
ると
0.0001100110011......
と、2進数表現が得られます。
Copyright(c) 1998 Yamada, K