【デジタル】 2進数、10進数、16進数、

 我々は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と余り、2で割って55と余り、2で割って27と余り、2で割って13と余り、2で割って6と余り、2で割って3(余り)、2で割って1と余り、最後に
 11011111
 1ばかりであまり良い例ではなかったか---。

 527の場合、
 263余り
 131余り
 65余り
 32余り
 16余り0
 8余り0
 4余り0
 2余り0
 1余り0
 
 1000001111
 最後のが忘れそうだが、ないと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に対応させることができる。

理数
スポンサーリンク