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

記数法についての質問です。

2進法の
110(2)
を10進法に直すステップを踏まずに,
3進法にするにはどうしたらよいでしょうか?

A 回答 (4件)

「10進法に直すステップ」を理解できているなら, それを 3進法に焼き直すだけ.

    • good
    • 0

何進数でも、それを「n進数」の変換したかったら、どんどん「n で割っていく」ことを繰り返せばよいのです。


「nで割ったら余りが出た」ら、その「余り」がその桁の値で、割り切れた「商」がその「上の桁たち」になります。
その「上の桁たち」をどんどんnで割って、その桁の値とさらに上位の値をどんどん求めていけばよいのです。
「商」が 0 となったら、それより上の桁はもうありません。

110(2) = 6(10)
を2進数にしたければ
 6(10) ÷ 2(10) = 3(10) (a) 余り 0(2) (b)
 3(10) ÷ 2(10) = 1(10) (c) 余り 1(2) (d)
 1(10) ÷ 2(10) = 0(10) (e) 余り 1(2) (f)
で、「余り」を「上の桁」から f→d→b とたどって「110(2)」

それが
 1(f) × 2^2 + 1(d) × 2^1 + 0(b) × 2^0
を表していることが分かりますか?
よく考えてみてくださいね。

同様に、3進数にしたければ
 6(10) ÷ 3(10) = 2(10) (a) 余り 0(3) (b)
 2(10) ÷ 3(10) = 0(10) (c) 余り 2(3) (d)
で、「余り」を「上の桁」から d→b とたどって「20(3)」

それが
 2(d) × 3^1 + 0(b) × 3^0
を表していることが分かりますか?


上の「3進数を求める計算」を「2進数」でできれば、10進数を経由せずに変換できます。
つまり
 110(2) ÷ 11(2) = 10(2) (a) 余り 0(3) (b)
 10(2) ÷ 11(2) = 0(2) (c) 余り 2(3) (d)
で、「余り」を「上の桁」から d→b とたどって「20(3)」

この「2進数での計算」ができますか?
できないなら「10進数」を経由しないと無理でしょう。
    • good
    • 0

NO1 さんの回答が 正規のやり方ですが、


分かり難かったら ネットで検索してみて下さい。
2進数と3進数でなくても 変換のやり方は一緒です。
多くのサイトがヒットする筈です。

質問の様に 小さな数字なら 1つづつ書き出しても 良いでしょう。
2進数 1, 10, 11, 100, 101, 110,
3進数 1, 2, 10, 11, 12, 20,
つまり 110(2)=20(3) 。
    • good
    • 0

10進数から2進数に変換するときと同じです。


2進数の3は11(2)ですから、変換したい2進数を11(2)で割っていきます。

110(2)÷11(2)=10(2)余り0(2) → 3進数の1の位
10(2)÷11(2)=0(2)余り10(2)  → 3進数の10の位

00(2)=0(3)
11(2)=1(3)
10(2)=2(3)
ですから、10の位が10(2)で、1の位が0(2)の3進数は20(3)となります。

もう少し大きな数字でやってみます。
1111(2)÷11(2)=101(2)余り0(2)
101(2)÷11(2)=1(2)余り10(2)
1(2)÷11(2)=0(2)余り1(2)
ですから、
1111(2)=120(3)です。
    • good
    • 0

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