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

111.1を8進数にすると、答えが「717.03030303」となりましたが、これは、合っておりますか。

質問者からの補足コメント

  • 111.1は、21進数です。

      補足日時:2017/07/20 19:36

A 回答 (5件)

21進数の「111.1」を一度10進数に置き換えると



111.1 (@21進数)
= 1 * 21^2 + 1 * 21^1 + 1 * 21^0 + 1* 21^(-1) (@10進数、以下同じ)
= 441 + 21 + 1 + 1/21
= 463 + 1/21

これを8進数に置き換えるために、8^n でくくり出してみると
(1)整数部分
 463 = 7 * 64 + 15
   = 7 * 8^2 + 1 * 8 + 7
   = 7 * 8^2 + 1 * 8^1 + 7 * 8^0

(2)小数部分
 1/21 = 0/8 + 3/64 + 1/(21 * 64)
    = 0/8 + 3/64 + 0/512 + 3/4096 + 1/(21 * 4096)
    = 0/8 + 3/64 + 0/512 + 3/4096 + 0/32768 + 3/262144 + 1/(21 * 262144)
 ・・・
このように、
 1/(21 * 8^n) = 3/8^(n+2) + 1/[21 * 8^(n+2)]
と表わされるので、小数部分は「.030303・・・」の循環小数となります。

(3)従って
 111.1 (@21進数) = 717.03030303・・・ (@8進数)
となります。

質問者さんがどうやって計算したのかは分かりませんが、結果は合っています。ただし、小数部分はその後も続く循環小数です。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。本当に毎回助かっております。小数点の計算は、 asano_nagi氏が仰っている方法で行いましたが、このような計算方法もあるのですね。勉強になります。

お礼日時:2017/07/21 19:39

ちなみに、少数部分を8進数に直す計算は


8を掛けると整数部分に、少数第一位が現れる
その答えから整数部分を引いた少数に
8を掛けると整数部分に少数第二位が現れる。
とこれを繰り返します。
    • good
    • 1

その 10進数になおしたときの 約463ですが


463 = 7*8^2 + 1*8^1 + 7*8^0 なので、間違ってはいません。
小数部分の変換は、省略。
    • good
    • 1

入力「111.1」を10進数として扱っているようですので、間違いではないでしょうか?



21進数で111.1
⇒ 10進数で、(21^2)*1+(21^1)*1+1+(21^(-1))*1 = 463.047619047619047619…
    • good
    • 0

正解です。

    • good
    • 1

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