• 締切済み

10進数→2進数

10進数の小数を2進数に変換する手法を説明していただけますでしょうか??? このときなぜ2で掛けていくかを詳しく教えて欲しいです。 そして、10進数のから2進数(整数)に変換するときの手法も教えて下さい。 このときなぜ2で割っていくかを詳しく教えて下さい。

みんなの回答

  • elttac
  • ベストアンサー率70% (592/839)
回答No.1

 ある数 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) + ... と表現するところがポイントなのです。

barbamama
質問者

お礼

とても早い回答ありがとうございます。 分かりやすくて助かりました。 またよろしくお願いします。

関連するQ&A