2進数と基底変換
2進数
当たり前だけど,コンピュータは2進数で動いている.
つまり,
2進数:0→1→10→11→100→101→110→111→1000→・・・ 10進数:0→1→2→3→4→5→6→7→8→・・・
ってな対応関係.
ちなみに,mbitで表せる数は2m通り.
8bitを1単位とするバイトという単位が一般的であり,このバイトと表す数として16進数がよく使われる.
16進数を使用すると1バイトを2桁で表せるかららしい.
2進数や16進数における2や16は基数と言う.
基数変換
2進数から10進数など,ある基数で表された数を別の基数で表現するために変換を行なうこと.
n進数→10進数
各桁でn桁をすることで変換可能.
0桁目からなので注意.
例:
2進数:1101.011の場合
1×23+1×22+0×21+1×20+0×2-1+1×2-2+1×(-3)=13.375
10進数→n進数
n進数→10進数とは逆にn桁で割っていく.
余りが0になるまで続けてその商を並べたものが変換後の数となる.
例:
10進数:13.375の場合
13.375÷23=1・・・5.375
5.375÷22=1・・・1.375
1.375÷21=0・・・1.375
1.375÷20=1・・・0.375
0.375÷2-1=0・・・0.375
0.375÷2-2=1・・・0.125
0.125÷2-3=1・・・0
2進数→8進数,2進数→16進数
2進数から8進数や16進数に変換するのは,8や16が23や24で表せるだけあって,簡単に行なえる.
8進数では3桁区切りで,16進数では4桁区切りでそれぞれの進数表記にすればいいだけ.
例:2進数で1101.01
8進数の場合:
001 | 101 . 010 ←3桁ないところは0を補う
1 | 5 . 2
16進数の場合:
1101 . 0100 ←4桁ないところは0を補う
D . 4 ←13は16進数でいうD
8進数→2進数,16進数→2進数
上記と逆で3(4)桁区切りで2進数に直す.
例1:8進数で15.2
1 | 5 . 2
001 | 011 . 010 → 1011.01
例2:16進数でD.4
D . 4
1101 . 0100