我々は10進数 0~9に慣れているので
102=100、103=1000、104=10000、……が区切りになるが、
デジタル 2進数 0、1の世界は
22=4(2進数だと100)、23=8(2進数だと1000)、24=16(2進数だと10000)、……が区切りになる。
コンピューターにとっては103=1000よりも210=1024のほうが良い区切りになる。1024バイト = 1KB(キロバイト)。
何進数でも表せるが、
2進数、10進数以外で目にするのは、
16進数 0~9、A、B、C、D、E、F
8進数 0~7。
時間、年月、角度などで、使われているのは
12進数 0~11(1~12)
60進数 0~59(1~60)。
2進数 ⇔ 10進数
例えば10進数の223は、
3 × 100 + 2 × 101 + 2 × 102。
2進数だと11011111になるが、
1 × 20 + 1 × 21 + 1 × 22 + 1 × 23 + 1 × 24 + 0 × 25 + 1 × 26 + 1 × 27
= 1 + 2 + 4 + 8 + 16 + 64 + 128 = 223。
これは2進数から10進数への変換。
10進数から2進数への変換は、
2で割って余りが1か0か書き留めて、繰り返す。
223の場合、2で割って111と余り1、2で割って55と余り1、2で割って27と余り1、2で割って13と余り1、2で割って6と余り1、2で割って3(余り0)、2で割って1と余り1、最後に1。
11011111
1ばかりであまり良い例ではなかったか---。
527の場合、
263余り1
131余り1
65余り1
32余り1
16余り0
8余り0
4余り0
2余り0
1余り0
1
1000001111。
最後の1が忘れそうだが、ないと15になってしまう。15 + 29(=512)で527。
以上、2進数 ⇔ 10進数は、
Windows、Mac付属の電卓(のプログラマー)やExcelなどで瞬時に変換できる。
Excelで
10進数 → 2進数は、DEC2BIN()
2進数 → 10進数は、BIN2DEC()。
ただし、511(2進数だと111111111)まで。
DEC:Decimal(10進数、10進法)
BIN:Binary(2進数、2進法、バイナリー)
16進数
HEX:Hexadecimal(16進数、16進法)で、
Excelの
10進数 → 16進数 DEC2HEX()
16進数 → 10進数 HEX2DEC()
は512以上の大きな数OK。
2進数 → 16進数 BIN2HEX()
16進数 → 2進数 HEX2BIN()
は511(2進数だと111111111、16進数だと1FF)まで。
16進数の1FFの次は200(10進数だと512)。
OCT:Octal(8進数、8進法)もある。
0と1だけの2進数だと見づらいが、
16進数に変換すると見やすくなる。
4桁の0、1(4ビット)を1桁に変えられる。
4ビットは0000から1111まで16通りで、
0000が16進数の0、……、1110が16進数のE、1111が16進数のFに対応する。
8ビット=1バイト。
8桁の0、1が16進数だと2桁で表せる。
2バイト(=16ビット)は、16進数だと4桁で表せる。
例えば2進数 1100010111111110は、
4桁ずつ1100が16進数のC、0101が16進数の5、1111が16進数のF、1110が16進数のEで、
16進数 C5FE。10進数だと50686。
2進数 1111111111111111は、
16進数 FFFF。10進数だと65535。
4桁ではなく3桁ずつ区切ると
3ビットは000から111まで8通りで、
各々8進数の0から7に対応させることができる。