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

十進法とは一の位、十の位、百の位・・・となっていくのもで
0~9で記される。
二進法とは一の位、二の位、四の位・・・となっていくもので
0と1で記される。

↑これが「理解できている」と呼ぶのかは微妙なのですが、質問です。
十進法から二進法へ変換するにはどうしたらよいのでしょうか?
教えてください。。。

A 回答 (4件)

十進法表記の数をひたすら2で割り続け、余りを取ります。


最後に「1」になったら、そこから始めて余りを読みます。
例 十進法67
2)33・・・1
2)16・・・1
2) 8・・・0
2) 4・・・0
2) 2・・・0
2) 1・・・0
二進法1,000,011となります。

この回答への補足

なんとなく分かりました。
ありがとうございます。
では最後の64の位の1はなぜつけたのですか。
この1は計算して出された答えなのですか。
教えてください。

補足日時:2007/09/11 23:45
    • good
    • 0

たとえば、30の場合


30÷2=15・・・0
15÷2=7・・・1
7÷2=3・・・1
3÷2=1・・・1
1÷2=0・・・1
この余りの部分を、逆から読むと11110で、これが30(十進法)の二進法表記になります。

参考URL:http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%80%B2% …
    • good
    • 0

例えば、14を二進数にする場合。



14(0 14÷2=7あまり0
7(1  7÷2=3あまり1
3(1  3÷2=1あまり1
1(1  1÷2=0あまり1 
0

という感じで、変換する10進数を2で割って、あまりを出していきます。
そして、あまりを、下から順番に並べていくと・・・
1110となります。これが、14の2進数表現です。

二進数は、2で繰り上がります。よって、各桁を10進数に対応させると以下のとおり(例:2^6とは、2の6乗という意味です)
10進数  128  64  32  16   8  4  2  1
2の乗数 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

ついでに、2進数を10進数に変換してみます。
10101100という2進数があった場合は、
1×2^7+0×2^6+1×2^5+0×2^4+1×2^3+1×2^2+0×2^1+0×2^0
=128+32+8+4
=172
となります。
これを、さらに2進数に変換してみます。
172(0
86(0
43(1
21(1
10(0
5(1
2(0
1(1

で、下から読んでいくと、10101100
と、最初の2進数にもどりましたね。
分かりにくいかもしれませんが、ご参考まで。
    • good
    • 8

「変換」という考え方は一時置いといて、「表し方」を考えましょう。



以下、123(10)は10進数の123 を, 1101(2) は2進数の1101を意味します。
書きながら10進数を使っているのでバレバレなんですが...

例えば 351(10) を10進数で表すには、1,10,100... をそれぞれ何個使うかと
考えます。答えは 100を3個と10を5個と1を1個 なので、その個数を並べて
351(10)
と表現します。

次に, 13(10)を2進数で表す方法を考えます。2進数で表すには、
10進数と同様に 1,2,4,8... をそれぞれ何個使うかを考えます。
ただ、表現に使える数字は 0か1 だけなので、「何個使うか」でなく
「1個使うか0個使う(つまり使わない)か」だけです。

答えは 8を1個と4を1個と2を0個と1を1個です。
従って 1101(2) と表現します。

この例だと8で割ってみて、商が1(つまり1個ある)なら8の位は「1」だ,
余があるから次に4で割ってみて商が1なら「1」だ...と
上から順に「1」「0」を求める方法で答えが解るのですが、
大きな数だと、最初に8でいいのか次に上の桁の16からなのか更に上の
32や64や128なのか...パッとみて解りませんよね。

なので、既出の回答のように下の位から、「2」で割ることで始めます。
割れたら(つまり商が1以上なら)次にも「2」で割ることで,
2で2回割った,つまり「4」で割ったことになります。
それでも割れればまた「2」で割れば「8」で割ったことになります。
この方法なら「2から始めて商がなくなるまで」計算すればよいので、
いくつから始めればいいのか悩まなくてすみます。

先の例、13(10)を2進数で表すのに、この「2で割る」作業をしてみます。
1) 13(10)÷2 = 6 ... 1
2) 6 ÷2 = 3 ... 0
3) 3 ÷2 = 1 ... 1
4) 1 ÷2 = 0 ... 1

下位の桁から順番に現れました。

はじめから追うと、
1)で「2」で割って「商1余1」ということは、余りの「1」は小さい数なので、
1の位に「1」と書くことで表現します。
2) で「2」で割って「余0」でした。ここでは「2」で2回割ったら余りがない、
つまり4で割り切れたので「2」を使わないので、2の位は「0」と
表現します。
3) で「2」で割って「余1」なので4の位で「1」と書きます。
ここで終わりしてはいけません。「商が0」になるまで行います。
4) で「商0余1」となったので、8の位に「1」と書きます。

従って 13(10)=1101(2) ということです。
    • good
    • 1

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