- 締切済み
10進数→2進数
10進数の小数を2進数に変換する手法を説明していただけますでしょうか??? このときなぜ2で掛けていくかを詳しく教えて欲しいです。 そして、10進数のから2進数(整数)に変換するときの手法も教えて下さい。 このときなぜ2で割っていくかを詳しく教えて下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- elttac
- ベストアンサー率70% (592/839)
ある数 x の 2 進数表記は,2 の n 乗(n は整数)の位の数 a(n)(0 または 1)を用いて, x = ... + 2^2・a(2) + 2^1・a(1) + 2^0・a(0) + 2^-1・a(-1) + ... と表せます。 10 進数を 2 進数にするときに,2 をかけたりわったりするのは,この,2^0 の位の値をみていることになります。 1 未満の数で考えます。 x = 2^-1・a(-1) + 2^-2・a(-2) + ... これを 2 倍すると, 2^0・a(-1) + 2^-1・a(-2) + ... です。これが 1 以上ならば,a(-1) は 1 であることがわかります。1 以上だったら,その 1 を捨て,1 に満たなかったらそのままで,さらに 2 をかければ, 2^0・a(-2) + 2^-1・a(-3) + ... となって,これが 1 以上かを判断すれば,a(-2) の値が求められます。 これを続けていけば,0 以上 1 未満の実数は 2 進数化されるでしょう。 一方,自然数の 2 進数変換も同様です。 x = ... + 2^2・a(2) + 2^1・a(1) + 2^0・a(0) で,これを 2 で割ると, ... + 2^1・a(2) + 2^0・a(1) + 2^-1・a(0) いちばん下の桁が半整数(整数の割り算ではあまり)になります。これで,a(0) が 0 か 1 かわかります。このあまりを捨てて,2 で割ると, ... + 2^1・a(3) + 2^0・a(2) + 2^-1・a(1) 同様に a(1) がわかります。これを繰り返していけば,2 進数表現が得られます。 要するに,10 進数を x = ... + 2^2・a(2) + 2^1・a(1) + 2^0・a(0) + 2^-1・a(-1) + ... と表現するところがポイントなのです。
お礼
とても早い回答ありがとうございます。 分かりやすくて助かりました。 またよろしくお願いします。