整数を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