• ベストアンサー

2進数の0.101101101101・・・は10進数ではいくら?

2進数の0.101101101101・・・は10進数ではいくら? という問題です。2進数の循環小数の10進数のなおしかたがわかりません。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pureh
  • ベストアンサー率69% (36/52)
回答No.5

変換の仕方は10進数の循環小数のときと基本的に同じで、計算を全て2進数で行い最後に分子・分母をそれぞれ10進数に直します。 x = 0.101101101...     (1) 両辺を 1000 (=2^3) 倍して、(3桁の繰り返し) 1000 * x = 101.101101...  (2) (2)式 - (1)式で、 (1000 - 1) * x = 101    (3) 111 * x = 101 x = 101 / 111 101 / 111 は、10進数で 5 / 7。 2進数の計算といっても注意するところは、 (2)式の循環小数の繰り返し桁数に応じて右辺の小数部を相殺するために2^k倍するところと、(3)式の左辺の減算くらいです。

who_is_next_
質問者

お礼

お返事ありがとうございました!! なるほど。そういうことだったんですね。 101/111はそのまま分母分子を別々に10進数になおせばいいんですね。これはやり方さえ頭に入ればすごい簡単ですね。なるほどなるほど。 どうもありがとうございました。

その他の回答 (4)

  • poor_Quark
  • ベストアンサー率56% (1020/1799)
回答No.4

自信なしですが、10進法だと101/999ですので、2進法で考えると101/111 では?つまり5/7かと。

who_is_next_
質問者

お礼

お返事ありがとうございます。 すいませんなぜそうなるのでしょうか? それと問題は2進数を10進数になおす問題なはずですが・・・。

  • kukku145B
  • ベストアンサー率32% (42/131)
回答No.3

誤記がありました、 0.101101の2進数を10進数に変換  = (1×2^-1)+(0×2^-2)+(1×2^-3)+(1×2^-4)+(1×2^-5)+(1×2^-6)  = (1×1/2)+(0×1/4)+(1×1/8)+(1×1/16)+(1×1/32)+(1×1/64)  = 0.5+0.125+0.0625+0.015625  = 0.625+0.078125  = 0.70325

who_is_next_
質問者

お礼

お返事ありがとうございました!! 2進数や10進数の理解が深まりました。 できれば質問の問題のヒントも教えていただきたかったのですが。

  • kukku145B
  • ベストアンサー率32% (42/131)
回答No.2

No1です。 例のURLでは小数は変換できませんでした。 せっかくなので、直し方を下記にしめします。 0.101101の2進数を10進数に変換  = 1×2^-1+0×2^-2+1×2^-3+1×2^-4+0×2^-5+1×2^-6  = 1×1/2+0×1/4+1×1/8+1×1/16++1×0/32+1×1/64  = 0.5+0.125+0.0625+0.015625  = 0.625+0.078125  = 0.70325

  • kukku145B
  • ベストアンサー率32% (42/131)
回答No.1

下記URLで2進数から10進数への変換ができます。 自分も疑問だったので、検索しました。

参考URL:
http://www.infonet.co.jp/ueyama/ip/binary/bin2dec.html

関連するQ&A