進数とは
コンピュータはハードウェアレベルで2進法(0と1)を使います。8進法(0–7)と16進法(0–F)はプログラミングやメモリアドレスでよく使われる簡潔な表現です。10進数を他の進数に変換するには、目標の基数で繰り返し割り算し、余りを逆順に読みます。
数値と入力進数を選ぶと、2·8·10·16進法の結果を一度に確認できます。
コンピュータはハードウェアレベルで2進法(0と1)を使います。8進法(0–7)と16進法(0–F)はプログラミングやメモリアドレスでよく使われる簡潔な表現です。10進数を他の進数に変換するには、目標の基数で繰り返し割り算し、余りを逆順に読みます。
10進数を別の進数に変換するには、目的の進数で繰り返し割り、余りを逆順に読みます。別の進数を10進数に変換するには、各桁の値にその位の重みを掛けて足し合わせます。例: 10進数255は2進数で11111111、8進数で377、16進数でFFになります。
16進数FFは10進数255です(15 × 16 + 15 = 255)。
2進数1010は10進数10です(1×8 + 0×4 + 1×2 + 0×1 = 10)。
10進数255は2進数11111111です(1が8個、8ビットのバイトが表せる最大値)。
2進数100は10進数4です(1×4 + 0×2 + 0×1 = 4)。
16進数7Fは10進数127です(7×16 + 15 = 127)。符号付き8ビットバイトの最大値です。
10進数10は16進数Aです。16進数ではA~Fで10~15を表します。
10進数8は8進数10です(8が1つ、1の位は0)。
8進数377は10進数255です(3×64 + 7×8 + 7×1 = 255)。
| 10進数 | 2進数 | 8進数 | 16進数 |
|---|---|---|---|
| 255 | 11111111 | 377 | FF |
| 100 | 1100100 | 144 | 64 |
| 42 | 101010 | 52 | 2A |
| 1000 | 1111101000 | 1750 | 3E8 |
| 8 | 1000 | 10 | 8 |
コンピューターのハードウェアはトランジスタで構成されており、オン・オフの2つの状態が最も安定して読み取れます。この2つの状態が2進法の1と0に自然に対応します。10種類の状態より2種類の状態を使う方が、信号を誤って読み取る可能性が低くなります。
16進数の1桁はちょうど2進数の4ビットに対応するため、1バイト(8ビット)は常に16進数2桁(例: 11111111 = FF)で表せます。このため16進数は、カラーコードやメモリアドレスなど、2進数を人間が読みやすい形に短縮した表記として広く使われています。
各2進数の桁に2の累乗(右から0として)を掛けて、すべて足し合わせます。例えば2進数1010は(1×8) + (0×4) + (1×2) + (0×1) = 10進数の10になります。
2進数は0と1のみ、8進数は0〜7のみ、10進数は0〜9のみ、16進数は0〜9とA〜F(大文字小文字は区別しません)のみを受け付けます。それ以外の文字を入力すると、その進数でエラーが表示されます。
このツールは0以上の整数のみを変換します。負の数・小数(整数以外の値)や、2・8・10・16以外の進数には対応していません。
Sources: Donald E. Knuth, The Art of Computer Programming, Vol. 2: Seminumerical Algorithms(位取り記数法に関する標準文献)
最終更新: 2026-08-17