- ベストアンサー
2進法や3進法について
はじめまして。今日、情報Aで2進法や3進法のついて習い、練習問題のプリントをもらいました。そのプリントには答えもついているのですが、何度やっても書いてある答えと合いません。もしかしてとは思いますが、先生が間違えているという可能性もあると思い、みなさんにも解いていただけないでしょうか?解けたら、答えがあっているかどうか、変換のポイントなどを書いていただけるとうれしいです。 問)3進法で書かれた数を2進法に直せ 1)22211 答え 100111111 3)201211 答え 100001011 ちなみに私の答えは1)が11101110、3)が100010111となりました。また、2)もあったのですがこれは正解でした。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
10進で238と535ですね。 1) 11101110 3) 1000010111 先生は完全に間違い。10進に直すと、1)=319,3)=267 1) はあなたが正解。 3) のあなたの解答は、10進だと 279 にしかならない。 ポイントってどうなんでしょうね。 九九を覚えるように覚えたから、人に説明するのって難しいな。3進から10進に変換して2進に変換するのがわかり易いと思いますけど。 2進は1の桁から、九九のように1,2,4,8,16,32,64,128,256,512,1024,2048,4096と暗唱しています。 3進は普段使わないから暗唱とまでいかないけども同じく1の桁から、1,3,9,27,81,243,729,2187と数字を思い浮かべて、変換すべき10進を置き換えていってますね。 たとえば、今回先生もあなたも間違えている 201211 ですが、10進=535と変換したら、2進表示では、まず最上位の桁が 512 である事はすぐにわかりますね。とすると、全部で10桁と確定できます。 あとは、535から512を減じて残り23なので16の5桁目、23-16=7で4の3桁目、7-4=3で2の2桁目、3-2=1で1の1桁目とフラグが立ちます。1000010111
その他の回答 (5)
- 2nd
- ベストアンサー率30% (19/63)
先生が間違っているかどうかは、 「補数表現」あたりに着眼すると判明するかも 知れません。
- tadys
- ベストアンサー率40% (856/2135)
FORTH と言うプログラミング言語がありますが2進数や3進数、64進数なども使えます。 そこで進数の変換をしてみました。()内はコメントです。 decimal (10進数に設定) 3 base ! (3進数に設定) 22211 (数字を入力) 2 base ! (2進数に設定) . 11101110 (数値を表示) decimal (10進数に設定) 3 base ! (3進数に設定) 201211 (数字を入力) 2 base ! (2進数に設定) . 1000010111 (数値を表示) と言うわけで、答えは 11101110 と1000010111 です。 FORTHはフリーで使用できるのがあるので興味が有れば検索してみてください。
- j-mayol
- ベストアンサー率44% (240/540)
まず10進法に直すのはこれまでに回答された方と同じです。 n進法は右からn^0,n^1,n^2,n^3・・・と考えられるので、計算で簡単に直せます。たとえば1)の場合には3^4が2個3^3が2個3^2が2個3^1が1個3^0が1個と考え、(3^4)*2+(3^3)*2+(3^2)*2+(3^1)*1+(3^0)*1とすれば10進法に直せます。そうすると10進法では238となります。 これを2進法に直すには割り算を使います。238をとりあえずあまりは無視して2で割り続けましょう。238/2=119,119/2=59,59/2=29,29/2=14, 14/2=7,7/2=3,3/2=1ここで残った1は2で割れないと考えて238には2^7が入るとします。次に238-2^7を計算し238-128=110、110を同じように割っていき2^6が入る。次は46,14,6,2を割っていき、結局238=2^7+2^6+2^5+2^3+2^2+2^1という結果を得ます。 よって二進法にすると11101110と導き出せます。 前の方のように慣れていないので力技で求める作戦ですが、n進法を理解するにはそれぞれの数字が10進法でいうと何を意味するのか理解すると楽だと思います。 3)も同じ作戦で解けますよ。
- kernel_kazzz
- ベストアンサー率29% (895/2993)
追記 九九のようにと書きましたが、要はリズムで暗唱しています。 ににんがし、にさんがろく…とやるように、 いち、に、よん、ぱ、いちろく、ざんに、ろくよん、いちにっぱ、にごろ、ごいちに、いちまるにーよん、にーまるよんぱ、よんまるくんろく… 仮名で書くとわかりづらいけど、25年前に覚えたやり方です。 もちろん桁が多くなれば、机上で手計算しますけどね。
- Ikonos00
- ベストアンサー率28% (86/302)
1)22211 2*3^4 + 2*3^3 + 1*3^2 + 1*3^1 + 1*3^0 = 238 3)201211 2*3^5 + 0*3^4 + 1*3^3 + 2*3^2 + 1*3^1 + 1*3^0 = 535 と、10進数ではこうなりました。 後は、関数電卓に任せましたが、 mickeymouse313さんの答えと同じになりました。