アプリ版:「スタンプのみでお礼する」機能のリリースについて

10101.01(2) を8進法で表す方法を教えて下さい!

A 回答 (4件)

普通に


10101.01 (two)
=010,101.010 (two)
=25.2 (oct)
    • good
    • 0
この回答へのお礼

ほんとに普通にやると出来ました!ありがとうございます(。-_-。)

お礼日時:2018/04/05 00:40

2進法を小数点から上下に「3桁」ごとに区切ったものが「8進法」になります。



10101.01(2) = 10 101 . 010 (2) = 25.2(8)

です。
    • good
    • 0
この回答へのお礼

なるほど!ありがとうございます(*☻-☻*)

お礼日時:2018/04/05 00:39

n進法の一般式は


(0~n-1)n^-n+(0~n-1)n^-n+1+・・・・・+(0~n-1)n^-1+(0~n-1)n^0+(0~n-1)n^1+・・・
(0~n-1)n^nです。・・・①
10101.01(2) は①で=2⁴+2²+2⁰+2⁻²=21.25です。これを①でn=8で表現すると
21.25=2・8¹+5・8⁰+2・8⁻¹になります。
よって、2進法の10101.01は8進法では25.2と表記されます。
①式を使うと他の3進法、4進法、10進法や16進法でも表せます。
    • good
    • 0

No.2です。



#3さんの書き方がちょっと分かりづらいので、私なりの説明を。

n 進法で、「abcde.fgh」(0 ≦ a~h ≦ n-1 の整数)と書かれた数は
 a * n^4 + b * n^3 + c * n^2 + d * n^1 + e * n^0 + f * n^(-1) + g * n^(-2) + h * n^(-3)
ということです。
たとえば、10進数「abcde.fgh (10)」なら n=10 としてみれば一目瞭然ですね。

2進法であれば n=2 として「abcde.fgh (2)」は
 S(2) = a * 2^4 + b * 2^3 + c * 2^2 + d * 2^1 + e * 2^0 + f * 2^(-1) + g * 2^(-2) + h * 2^(-3)
であり、これを
 S(2) = (a * 2^1 + b * 2^0) * 2^3 + (c * 2^2 + d * 2^1 + e * 2^0) * 2^0 + [f * 2^2 + g * 2^1 + h * 2^0] * 2^(-3)
   = (a * 2^1 + b * 2^0) * 8^1 + (c * 2^2 + d * 2^1 + e * 2^0) * 8^0 + [f * 2^2 + g * 2^1 + h * 2^0] * 8^(-1)
と書けば、そのまま
 S(8) = (a * 2^1 + b * 2^0) * 8^1 + (c * 2^2 + d * 2^1 + e * 2^0) * 8^0 + [f * 2^2 + g * 2^1 + h * 2^0] * 8^(-1)
となることが分かりますね。

これでうまくいくのは n=2, 4, 8, 16, ・・・ 2^k のときだけで、それ以外のときには一度上の式で10進数に変換して、再度書き直さないといけません。でも機械的・論理的に計算できます。
    • good
    • 0

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