• ベストアンサー

10進数から8進数へ

同じような質問が多々ありますが、どうしてもわからないので教えてください!! 10進数の12.3を8進数に変換するやり方がわかりません。12は14になるのがわかるのですが、0.3はどうすればいいのでしょう。。。

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

  • ベストアンサー
回答No.4

12.3などといわず、123.4でやってみましょう。 123÷8=15...3↑(この整数部分をさらに8で割ります)  15÷8= 1...7|(この整数部分をさらに8で割ります)   1÷8= 0...1|(ここで計算は終わりです) よって123の八進表示は―→の順に読んで173となります。 0.4の部分は÷ではなく、×で計算します。 0.4×8=3.2|(この小数部分にさらに8を乗じます) 0.2×8=1.6|(この小数部分にさらに8を乗じます) 0.6×8=4.8|(この小数部分にさらに8を乗じます) 0.8×8=6.4|(この小数部分にさらに8を乗じます) 0.4×8=3.2↓(ここからは繰り返しになります) よって0.4の八進表示は―→の順に読んで0.3146314631463146…という循環小数になります。整数部と小数部の算出は全く逆の計算になっていることに気がついてください。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

10進法→n進法の小数変換は、10進数の小数部分にnをかけて、整数部分を読み、答えの小数部分だけを取り出してまたnをかけ、答えが『○○.0』になったら計算終了で、出てきた整数部分を順に読めばOKです。 ただし、必ずしも『○○.0』にはなりません。nの逆数の累乗の和で示せない小数は表現できません。 今回の場合、 0.3*8 = 2.4 → 整数部分は2。小数部分は0.4。 0.4*8 = 3.2 → 整数部分は3。小数部分は0.2。 0.2*8 = 1.6 → 整数部分は1。小数部分は0.6。 ・・・ と続けていくわけですが、これは計算が終わりませんね・・・有限桁数では表現不可能かと思います。どこかで値を丸めましょう。 なので、今回は『14.231・・・』だと思われます。 割り切れる時は以下のようになりますよ。 ○10進数の 0.265625 を8進数に直す 0.265625*8 = 1.125 → 整数部分は2。小数部分は0.125。 0.125*8 = 1.0 → 整数部分は1。小数部分は0。 小数部分が0なので計算終了となり、答えは『0.21』となります。

すると、全ての回答が全文表示されます。
回答No.2

プログラムというよりは、数学の問題ですが…。 十進法の「0.3」は「3×(1/10)」なので、八進法に直すときは、 「A×(1/8)+B×(1/8)^2+C×(1/8)^3+D×(1/8)^4+…」 という形にして、それを「0.ABCD…」と並べます。 具体的な計算の仕方は、以下サイトを参照してください。 ちなみに、答えは循環小数になります。(割り切れません) http://ja.wikipedia.org/wiki/%E4%BD%8D%E5%8F%96%E3%82%8A%E8%A8%98%E6%95%B0%E6%B3%95#.E6.9C.89.E7.90.86.E6.95.B0.E3.83.BB.E5.AE.9F.E6.95.B0.E3.81.AE.E8.A1.A8.E8.A8.98

すると、全ての回答が全文表示されます。
  • yuripapa
  • ベストアンサー率29% (49/165)
回答No.1

普通に考えたらそのまま14.3でいいんじゃないですか? ただ繰り上がる時に0.7の次に1になるんじゃないの? 個人的な意見ですが・・・

参考URL:
http://e-words.jp/w/8E980B2E695B0.html
すると、全ての回答が全文表示されます。

関連するQ&A