プロが教える店舗&オフィスのセキュリティ対策術

二進数の循環小数を十進数に変換する方法が分かりません。

サイトも探してみたのですが、十進の循環を二進数に変換するものは見つかっても、逆は見つからなくて・・・

教えていただけませんでしょうか、よろしくお願いします。

A 回答 (2件)

例えば2進数で  A=0.11001100・・・  



という循環小数を十進数に変換する場合を考えます。

Aは小数第1位と第2位が1である  B=0.11
を初項とする公比 1/16の無限等比級数となっています。
公比 1/16というのは、4桁ごとに循環している(2^4=16)ことから来ています。

B=1/2+1/4=3/4

これが初項で公比 1/16なので

A=3/4/(1-1/16)=4/5=0.8

となります。(なんと! 2進数の無限小数が十進数では有限小数にw)

循環の周期が長くなっても同様にして算出できます。

蛇足ですが、0.00011001100・・・が十進数の0.1であることを記憶しておくと応用が利くでしょう。
    • good
    • 3

例えば、2進数で


0.101101101101…
を10進数に直すには、まず元の2進数を変形させます。
x=0.101101101101…
x*1000=101.101101101…
1000x-x=101
111x=101
x=101/111
(ここまでは全て2進数の計算です。)
後は分母分子をそれぞれ10進数に変換するだけ。
(101/111)2=(5/7)10
になるので、10進数で5/7。
5/7=0.714285714285…
(10進数でも循環小数になっちゃいました。)
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!