• ベストアンサー

10進数を2進数にする

10進数→2進数 10進数の1/7を2進数にする方法を教えて下さい。 (技術士・基礎H19の問題です) 回答では『0.0010010010010010』となっています。

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

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

10進数の整数を2進数にする方法は分かりますか? 2で割ったを余りをつなげていけば2進数になります。 例えば、13は、 13÷2=6...1 6÷2=3...0 3÷2=1...1 1÷2=0...1 以上より、1101(2)=13(10) 少数の場合は、2を掛けた値の整数部分をつなげていけば2進数になります。 1/7の場合は、 1/7×2=0+2/7 2/7×2=0+4/7 4/7×2=1+1/7 1/7×2=0+2/7 2/7×2=0+4/7 4/7×2=1+1/7 1/7×2=0+2/7 2/7×2=0+4/7 4/7×2=1+1/7 1/7×2=0+2/7 ・・・・・・ 頭に0.を付けて、整数部分をつなげれば、 0.0010010010・・・・ (0.001の小数点以下第1位から3位までの循環小数) が2進数となります。

その他の回答 (1)

  • ybnormal
  • ベストアンサー率50% (220/437)
回答No.1

10進整数の2進化と、2^Nで2進数を割ることは当該2進数をNビットだけ右シフトすることと等価であることは理解しているとして回答します。 例えば4096(2^12)を1/7にかけて整数部分だけを取り出すと、585となります。これを2進にすると1001001001. 1/7に戻すために、1001001001を4096で割る必要があるが、4096で割るということは1001001001を右に12ビットシフトすることと等価。 したがって答えは、0.001001001001. もっと有効ビット数が必要であれば4096のかわりに、より大きな8192とか16384とか65536などの2の累乗を掛けて、最後に相当分を右シフトすればいいだけです。