2進数・8進数・10進数・16進数を相互変換。プログラミング・ネットワーク設計に。
2進数(バイナリ)、8進数(オクタル)、10進数(デシマル)、16進数(ヘキサデシマル)を相互にリアルタイム変換する無料ツールです。いずれかの欄に数値を入力すると、他の3つの欄が自動的に更新されます。
プログラミングでは16進数(HEX)がメモリアドレスやカラーコード(例: #FF5733)の表現に使われ、2進数はビット演算やフラグ管理で頻繁に登場します。例えば、ファイルパーミッション(chmod 755)は8進数で表現されています。このツールを使えば、異なる基数間の変換を瞬時に確認できます。
IPアドレスのサブネットマスク計算では、2進数での理解が不可欠です。例えば、サブネットマスク 255.255.255.0 は2進数で 11111111.11111111.11111111.00000000 と表現されます。本ツールで10進数↔2進数の変換を素早く確認できます。
2進数(0と1のみ、接頭辞 0b)、8進数(0〜7、接頭辞 0o)、10進数(通常の数値表記)、16進数(0〜9およびA〜F、接頭辞 0x)に対応しています。入力はリアルタイムで変換され、すべてブラウザ上で処理されます。
255(16進: FF, 2進: 11111111)はRGBカラーの最大値、65535(16進: FFFF)は16ビットの最大値、127(16進: 7F)はASCIIの最大値です。これらの値を覚えておくと、開発作業がスムーズになります。
進数(基数 = radix)とは、数を表すときに「いくつの記号でひと桁を表し、いくつ集まったら桁が上がるか」を決めるルールのことです。普段使う10進数(デシマル)は0〜9の10種類の記号を使い、10集まると桁が上がります。これに対して2進数(バイナリ)は0と1の2種類、8進数(オクタル)は0〜7の8種類、16進数(ヘキサデシマル)は0〜9とA〜Fの16種類の記号を使います。同じ数でも基数が違えば見た目はまったく変わり、たとえば10進数の10は2進数で1010、8進数で12、16進数でAと表されます。値そのものは同じで、表記方法だけが異なる点が進数変換を理解する出発点です。
各桁の重みは基数のべき乗で決まります。10進数の「255」が2×10²+5×10¹+5×10⁰であるのと同じように、16進数の「FF」はF×16¹+F×16⁰=15×16+15=255、2進数の「11111111」は1×2⁷+…+1×2⁰=255となり、いずれも同じ大きさを別の基数で書き表したものです。
コンピュータが2進数を基礎に動くのは、内部の電子回路が「電圧が高いか低いか」「スイッチがオンかオフか」という2つの状態しか安定して区別できないためです。この2状態をそのまま0と1に対応させれば、数も文字も命令もすべて電気信号として表現できます。3状態以上を使う方式も理論上は考えられますが、状態が増えるほど回路は複雑になり誤動作も起きやすくなるため、2状態(2進数)が最も単純で高速・高信頼という大きな利点を持ちます。これが、あらゆるデジタル機器の根底に2進数がある理由です。
16進数は、長くなりがちな2進数を人間が読みやすくまとめるために使われます。2進数の4桁がちょうど16進数の1桁(0000〜1111が0〜F)に対応するため、8ビット=1バイトを16進数2桁できれいに表せます。具体的には、Webのカラーコード(例: #FF5733 は赤FF・緑57・青33)、メモリアドレスやポインタの表示(0x7FFE…)、文字コード(U+3042 など)、MACアドレスやバイナリダンプなど、低レイヤの開発やデザインの現場で広く使われています。一方、8進数はUNIXのファイルパーミッション(chmod 755 など)で今も使われます。
下表は代表的な10進数の値を各基数で表したものです。値はコードで検証しています。
| 10進数 | 2進数 | 8進数 | 16進数 | 備考 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | ゼロ |
| 1 | 1 | 1 | 1 | 最小の桁 |
| 2 | 10 | 2 | 2 | 2進で桁上がり |
| 4 | 100 | 4 | 4 | 2の2乗 |
| 8 | 1000 | 10 | 8 | 8進で桁上がり |
| 10 | 1010 | 12 | A | 16進でA |
| 15 | 1111 | 17 | F | 16進1桁の最大 |
| 16 | 10000 | 20 | 10 | 16進で桁上がり |
| 255 | 11111111 | 377 | FF | 1バイトの最大 |
10進数0〜16の区間では、2進数は1桁から5桁へ、16進数は0からF(15)までの1桁で済み、16でようやく10(=16進の桁上がり)になる関係が見て取れます。255は8ビットすべてが1になる値で、2進11111111・16進FFという開発現場で頻出のパターンです。