コンピュータは内部的に2進数(基数2)を使用しています。プログラマーはしばしば16進数(基数16)で作業します。これらのシステムを理解することで、コンピュータがデータをどのように保存・表示するかが明確になります。
3つのシステム
| システム | 基数 | 使用する数字 |
|---|---|---|
| 2進数 | 2 | 0, 1 |
| 10進数 | 10 | 0–9 |
| 16進数 | 16 | 0–9, A–F |
16進数では:A=10、B=11、C=12、D=13、E=14、F=15
2進数から10進数への変換
各2進数は、右から始まる2の累乗を表します。
例: 1101(2進数)を10進数に変換
``` 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13 ```
10進数から2進数への変換
2で繰り返し割り、余りを記録します:
例: 25を2進数に変換
``` 25 ÷ 2 = 12 余り 1 12 ÷ 2 = 6 余り 0 6 ÷ 2 = 3 余り 0 3 ÷ 2 = 1 余り 1 1 ÷ 2 = 0 余り 1 ```
余りを下から上に読む:11001
確認:16 + 8 + 0 + 0 + 1 = 25 ✓
16進数から10進数への変換
各16進数は16の累乗を表します:
例: 2F(16進数)を10進数に変換
``` 2×16¹ + F×16⁰ = 2×16 + 15×1 = 32 + 15 = 47 ```
2進数から16進数への変換(クイックメソッド)
右から2進数を4桁ずつグループ化し、各グループを変換:
例: 11010111(2進数)を16進数に変換
``` 1101 = 13 = D 0111 = 7 ```
結果:D7(16進数)
なぜ16進数を使うのか?
8桁の2進数(1バイト)= ちょうど2桁の16進数。したがって:
- 00000000 = 00(16進数)= 0
- 11111111 = FF(16進数)= 255
これにより、16進数は2進数データを簡潔に表現する方法になります。Webカラーはhexを使用(例:#FF5733 = 赤255、緑87、青51)。
よく使う値
| 10進数 | 2進数 | 16進数 |
|---|---|---|
| 0 | 0000 | 0 |
| 10 | 1010 | A |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
| 255 | 11111111 | FF |
| 256 | 100000000 | 100 |
数値システム変換ツールを使って、2進数、10進数、16進数、8進数の間を即座に変換できます。