Yueseryueser.com

← ガイド一覧

2進数エンコードのガイド:各ビットが何を表すか

2進数で間違えやすいのは0と1そのものではなく、その8ビットが「バイト」なのか「数」なのかを混同する点です。先にそこを決めてください。

ツールを開く:2進数エンコーダー

ビットまで見たいとき

UTF-8 で中国語が3バイトになる理由、ASCII が7ビットで足りる理由、パーミッションのフラグ、仕様の第3ビットの意味。16進数では粗すぎる場面で、2進数はすべてのビットを並べてくれます。

ビット演算のデバッグにも便利です。マスクと値を両方展開すれば、AND の後にどのビットが残り、どれが消えるかが目で追えます。暗算より確実で、思い込みをすぐに検証できます。

8ビット1組、先頭ゼロは省略しない

各バイトは必ず8ビットで出力され、足りない分は前にゼロが付きます。01000001 は英字 A、つまり65です。先頭の0を落として 1000001 と書くと、65とも別の値とも読めてしまい、曖昧になります。

ビット順は左が最上位です。仕様に「bit 0 は右端」とある場合は右から数えてください。バイト間は空白で区切り、漢字は通常3組、絵文字は4組になります。組数が合わなければ、コピー時に欠けた可能性が高いです。

長く、重く、暗号ではない

同じ文でも2進数は16進数の4倍の長さになり、ログではほぼ使われません。説明、ビット単位の確認、一度きりの共有に向いており、保存や転送には向きません。バイトを記録するなら16進数が実用的です。

暗号でもありません。鍵はなく、8ビットずつ読めば誰でも戻せます。また2進数が表すのはバイトであり、バイト順ではありません。多バイト整数がビッグエンディアンかは、読む側のプログラムが決めます。

よくある質問

なぜ A は 01000001 なのですか

ASCII で A は65番目で、8ビットで書くと 01000001 になります。UTF-8 はこの範囲で ASCII と同一なので、英文は同じ表記になります。漢字はここから多バイトになります。

漢字はなぜ24ビットになるのですか

UTF-8 では常用漢字が3バイトで、1バイトは8ビットなので合計24ビットです。壊れているのではなく、デコーダも同じ区切りで戻します。

進数変換ツールとの違いは何ですか

進数変換は 255 と 0xff のような「数」を扱います。このツールは「テキスト」を扱い、各文字の UTF-8 バイトを展開します。出力が0と1でも対象が違います。

関連ツール:2進数エンコーダー