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

2進数の1010を8進数に変換しようと今まで質問サイト等で教えていただいたほうほうでやってみたのですが、どうも答えが合いません。
1010を8進数にすると12になるはずですが、計算すると10になってしまいます。
1010という数字一つ一つに、(1/4*8)^mを乗算していくことで8進数を求めようとしています。
1*(1/4*8)^3+0*(1/4*8)^2+1*(1/4*8)^1+0*(1/4*8)^0=10

どちらか一方が一方の倍数だったら10進数に一度しなくても、直接変換できるそうなのでやってみたのですが、どうするとこの計算式は、12になるのでしょうか。

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

  • ご回答有難うございます。
    下一桁目から求める方法で、123/5=24...3
    24/5=4...4
    4/5=0...4
    なので123の5進数は、433ですね。

    No.4の回答に寄せられた補足コメントです。 補足日時:2016/11/11 19:49
  • うーん・・・

    ご回答有難うございます。
    申し訳ありません。2進数1010の意味であるという
    >>1×2³ + 0×2² + 1×2¹ + 0×2⁰
    >>8  + 0  +  2  +  0 = 10
    >>8×10⁰ + 0×10⁰ + 2×10⁰ + 0×10⁰ = 10×10⁰
    >>・・……       ・
    >>これは、・・・・・・・・・・ ということ

    が良く理解できませんでした。なぜ、そこで(1/4*8)^mを乗算するのではなく2^mで乗算しているのでしょうか。
    申し訳ありませんが、全体的に理解することができませんでした。

    No.8の回答に寄せられた補足コメントです。 補足日時:2016/11/11 19:55
  • うーん・・・

    疑問があるのですが、1010を10進数にする過程で8と2が算出されますが、その8と2に、10^0を乗算しています。
    8×10⁰ + 0×10⁰ + 2×10⁰ + 0×10⁰ = 10×10⁰
    この式の意味が良くわかりませんでした。

    No.9の回答に寄せられた補足コメントです。 補足日時:2016/11/16 19:19
  • 今更NO.8の話で、申し訳ないのですが三点リーダーって、数を表していたのですね。文章などで見られる「…」にしか見えなかったので、「これは、………・ ということ8進数でしたら<略>」って肝心な部分はなんなんだ…と思っていました。
    また、NO.8に対する補足で「なぜ、そこで(1/4*8)^mを乗算するのではなく2^mで乗算しているのでしょうか」などと頓珍漢なことを言ってしまい申し訳ないです。
    ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12166264687
    上記で7進数から14進数に直接変換する際、7進数である666を14/2^mで乗算していた為つい分数で計算していたのですが、別の指摘にもある通り、分数で計算する必要はないし、2^mで計算するのは、(1/4*8)で計算するのと変わらないわけなので疑問に思うのは違っていました。

      補足日時:2016/11/16 19:23
  • ご回答有難うございます。
    >>a・n^p <略>
    >> =(a・r^p)・m^p
    上記の式に、4進数の1111でpが3桁目という条件で式を埋めてみると
    1*4^3=1*(r*m)^3=1*r^3*m^3=(1*r^3)*m^3になりました。
    n=r*mということは、4=r*mなのでr*mは、2*2となります。
    (1*r^3)*m^3という式に2*2を代入すると、1*2^3*2~3となりました。
    ということは、m進数、この式で言う2進数の三桁目は、1*2^3、つまり8になってしまいます。
    この場合、8は、そのまま計算すべきなのでしょうか。それとも何か処理が必要なのでしょうか。
    この8を4進数1111の三桁目にかけ、同じ要領で各桁に乗算していくことで直接変換ができるということでしょうか。
    試しに計算を続けた結果、下記のようになりました。
    1*8+1*4+1*2+1*1=15

    No.11の回答に寄せられた補足コメントです。 補足日時:2016/11/17 19:14
  • どう思う?

    ご回答有難うございます。
    >>2進数(m=2)に変換するならそうですが、例えば、8進数に変換するなら 4=r・8 から、 r=1/2 となります。
    つまり、2進数から8進数なので、4進数の1111を8進数にするとき4(n)=1/2(r)*8(m)、
    1*4^3=1*(1/2*8)^3=1*1/2^3*8^3=(1*1/2^3)*8^3になったのですが、8進数にしないとならないので、式内の8を繰り上げる必要があるのですが、

    >>8・2^3
    >> = (2^3 + 0 ) ・2^3
    >> = 2^3・2^3 + 0 ・2^3
    >> = 1 ・ 2^6 + 0 ・2^3

    で、二行目の式で0がありますが、8が繰り上げになったので0になったということですか。
    2^6というのは、2^3・2^3 が合わさったものですか。

    No.12の回答に寄せられた補足コメントです。 補足日時:2016/11/18 19:55

A 回答 (12件中11~12件)

10*1+4*0+2*1+1*0=12


直接変換ならば右から3桁ずつ考えます。
たとえば「011010110」の場合右から3桁ずつ「011 010 110」とわけて、400*0+200*1+100*1 + 40*0+20*1+10*0 + 4*1+2*1+1*0=326、となります。
ちなみに「400*0+……」の「400」は10進法の「400」ではなく8進法の「400」です。
なぜ3桁ずつ分けるかというと桁上がりとかを考えずに済みます。
    • good
    • 0

8進数は2進数の3桁区切りです



1010=8+0+2+0
=8と0+2+0
=1と2
=12
です。
    • good
    • 0

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