2進法、やはりわかりにくかったですか。
それではこの際覚えてしまいましょう。
http://www.asahi-net.or.jp/〜ax2s-kmtn/ref/bdh.html
の説明などがわかりやすいと思いますが、ちょっと補足説明をしておきます。
私達が普通使っている10進法は1,10,100,・・・と
数が10倍になるごとに桁が上がりますね。
例えば2976は1000が2個、100が9個、10が7個、1が6個の合計であるということを表しています。
つまり 2976=2x1000+9x100+7x10+6x1
=2x(10の3乗)+9x(10の2乗)+7x(10の1乗)+6x(10の0乗)
ということで、1の位から順に10の0乗(=1)が何個あるか、10の1乗が何個あるか、10の2乗が何個あるか・・・というふうに数字をならべているわけです。
2進法はすべての数を0と1の数字だけで表します。
(10進法が数が10倍になるごとに桁が上がるのに対し、2進法では1,2,4,8と数が2倍になるごとに桁が上がっていきます。)
2進法の一番下の位は(2の0乗)つまり1が1個か0個かを表します。
下から二番目の位は (2の1乗)つまり2が1個か0個かを表します。
下から三番目の位は (2の2乗)つまり4が1個か0個かを表します。
以下同様に下からn番目の位は[2の(n-1)乗]が1個か0個かを表します。
ですから、たとえば2進法で1101は10進法でいうと2の3乗が1個、2の2乗が1個、2の1乗が0個、2の0乗が1個の合計であることを表していますから、
1101(2進法)=1x(2の3乗)+1x(2の2乗)+0x(2の1乗)+1x(2の0乗)
=1x8+1x4+0x2+1x1=13(10進法)
ということになります。
逆に、例えば10進法の100を2進数に変換するときの考え方は・・・
100より小さくてかつ100に最も近い2のべき数を求めます。
2のべき数は2, 4, 8, 16, 32, 64,128・・ ですから64(2の6乗)が100に最も近い2のべき数です。
次に100から64を引いた残りの36に最も近い2のべき数[32(2の5乗)]を求めます。
残りは36-32=4 (2の2乗)ですから
100=64+32+4
=1x(2の6乗)+1x(2の5乗)+0x(2の4乗)+0x(2の3乗)+1x(2の2乗)+0x(2の1乗)+0x(2の0乗)=1100100(2進法)
ということになります。
それではこの際覚えてしまいましょう。
http://www.asahi-net.or.jp/〜ax2s-kmtn/ref/bdh.html
の説明などがわかりやすいと思いますが、ちょっと補足説明をしておきます。
私達が普通使っている10進法は1,10,100,・・・と
数が10倍になるごとに桁が上がりますね。
例えば2976は1000が2個、100が9個、10が7個、1が6個の合計であるということを表しています。
つまり 2976=2x1000+9x100+7x10+6x1
=2x(10の3乗)+9x(10の2乗)+7x(10の1乗)+6x(10の0乗)
ということで、1の位から順に10の0乗(=1)が何個あるか、10の1乗が何個あるか、10の2乗が何個あるか・・・というふうに数字をならべているわけです。
2進法はすべての数を0と1の数字だけで表します。
(10進法が数が10倍になるごとに桁が上がるのに対し、2進法では1,2,4,8と数が2倍になるごとに桁が上がっていきます。)
2進法の一番下の位は(2の0乗)つまり1が1個か0個かを表します。
下から二番目の位は (2の1乗)つまり2が1個か0個かを表します。
下から三番目の位は (2の2乗)つまり4が1個か0個かを表します。
以下同様に下からn番目の位は[2の(n-1)乗]が1個か0個かを表します。
ですから、たとえば2進法で1101は10進法でいうと2の3乗が1個、2の2乗が1個、2の1乗が0個、2の0乗が1個の合計であることを表していますから、
1101(2進法)=1x(2の3乗)+1x(2の2乗)+0x(2の1乗)+1x(2の0乗)
=1x8+1x4+0x2+1x1=13(10進法)
ということになります。
逆に、例えば10進法の100を2進数に変換するときの考え方は・・・
100より小さくてかつ100に最も近い2のべき数を求めます。
2のべき数は2, 4, 8, 16, 32, 64,128・・ ですから64(2の6乗)が100に最も近い2のべき数です。
次に100から64を引いた残りの36に最も近い2のべき数[32(2の5乗)]を求めます。
残りは36-32=4 (2の2乗)ですから
100=64+32+4
=1x(2の6乗)+1x(2の5乗)+0x(2の4乗)+0x(2の3乗)+1x(2の2乗)+0x(2の1乗)+0x(2の0乗)=1100100(2進法)
ということになります。