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

10進数で123を2進数で表わすとき、どのように表せわばよいのですか?
もう一つ、2進数で、10111を10進数で表す時はどのようにしたら良いのですか?

A 回答 (3件)

何進法であっても、「n進数で abcdef 」という数値は、10進数で表せば


 abcdef [n] = a*n^5 + b*n^4 + c*n^3 + d*n^2 + e*n^1 + f*n^0 [10]
と表せます。([n] は「n進数」であることを示す)

10進数なら n=10、16進数なら n=16、2進数なら n=2 とすればよいのです。

この原則が分かれば
 123 [10] = 1*10^2 + 2*10^1 + 3*10^0 [10]
     = 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 [10]
なので
 123 [10] = 111 1011 [2]
ということが分かります。

あとは、2進数にするときの現実的なやり方は、どんどん2で割って余りを並べる方法です。
 123 ÷ 2 = 61 ・・・ 1 つまり 123 = 61*2 + 1
 61 ÷ 2 = 30 ・・・ 1 つまり 61 = 30*2 + 1
 30 ÷ 2 = 15 ・・・ 0 つまり 30 = 15*2 + 0
 15 ÷ 2 = 7 ・・・ 1 つまり 15 = 7*2 + 1
 7 ÷ 2 = 3 ・・・ 1 つまり 7 = 3*2 + 1
 3 ÷ 2 = 1 ・・・ 1 つまり 3 = 1*2 + 1
 1 ÷ 2 = 0 ・・・ 1 つまり 1 = 0*2 + 1
(0 ÷ 2 = 0 ・・・ 0 つまり 0 = 0*2 + 0 、以下何桁計算しても同じ)
この「余り」を下から順に並べて
 0111 1011
(最初の「0」は書かなくてもよいですが、どこから「1」になるのかを示すために計算例として入れてみました)

どうしてこれで求められるのかは、自分で考えてみてくださいね。
(余りがその桁の数値、2の倍数で表されるのはその1つ上の桁の数値というわけです)


2進数を 10進数に直すのは簡単ですね。
 1 0111 [2] = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 1*2^0 [10]
       = 16 + 0 + 4 + 2 + 1
       = 23 [10]
    • good
    • 1
この回答へのお礼

ありがとうございます詳しく(^^)

お礼日時:2018/01/26 13:27

123 = 2^6 + 2^5 + 2^4 + 2 + 1


よって2進法では 1110011

10111 = 2^4 + 2^2 +2 +1
よって10進法では、23
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2018/01/26 13:26

10進数123→2進数で1111011



2進数で10111→1*2の4乗+1*2の2乗+1*2の1乗+1*2の0乗 16+4+2+1=23になります。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2018/01/26 13:26

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

このQ&Aを見た人はこんなQ&Aも見ています