> encode | decode | hex <
// バイナリデータ表現のための Base16(16進数)エンコーディング
[SIMPLE]
かんたん操作
Base16 のエンコード/デコードをすぐに実行できるシンプルな UI。専門知識は不要です。
[SECURE]
ローカル処理
すべての変換はブラウザ内で行われます。データが端末外へ送信されることはありません。
[FAST]
即時結果
待ち時間なしのリアルタイム変換。デバッグや開発に最適。
>> 技術情報
Base16 の仕組み:
Base16(16 進数)は 16 種類の文字(0-9, A-F)でバイナリデータを表現します。1 バイトは 2 桁の 16 進数で表されます。
例:
"Hello" → 48656C6C6F
Base16 を使う理由:
- >コンパクトなバイナリ表現
- >人に読みやすい形式
- >プログラミング/デバッグの標準
- >特殊文字が不要
- >幅広い環境での互換性
>> よくある質問
Base16 エンコードとは?
Base16(16 進数)は、16 の記号(0-9 と A-F)でバイナリデータを人間に読みやすい形で表現する方式です。
Base16 はいつ使う?
色コード、メモリアドレス、バイナリの表示やデバッグなどに最適です。プログラミングやシステム運用で一般的です。
Base16 と 16 進数は同じ?
はい、同じです。「16 進数」という名称がより一般的です。
どんな Base16 文字列でもデコードできる?
0-9 と A-F(大文字/小文字は不問)のみで構成された有効な文字列であれば可能です。無効な文字があるとエラーになります。
// Base16の比較
| エンコーディング | 1文字あたりのビット数 | サイズの増加 |
|---|---|---|
| Base16 | 4 | 100% |
| Base32 | 5 | 60% |
| Base64 | 6 | 33% |
// コードでのBase16
Linux/macOS echo -n Hello | xxd -p # 48656c6c6f
echo 48656c6c6f | xxd -r -p # Hello
Python 'Hello'.encode().hex() # '48656c6c6f'
bytes.fromhex('48656c6c6f')
Node.js Buffer.from('Hello').toString('hex')
Buffer.from('48656c6c6f', 'hex').toString()
>> その他の質問
Q: Base16でデータサイズが2倍になるのはなぜですか?
A: 1バイトが2文字になるため、オーバーヘッドは100%です。Base64は約33%で済みますが、Base16は読みやすくデバッグしやすいのが利点です。
Q: Base16と、0xや空白付きの16進文字列の違いは?
A: RFC 4648のBase16は、0〜9とA〜Fだけの並びで、接頭辞も区切りもありません。0x やバイト間の空白は表示上の慣習なので、デコード前に取り除いてください。
Q: 有効なBase16文字列の長さが偶数でなければならないのはなぜですか?
A: 1バイトは必ず2桁です。奇数長は文字が欠けているか、先頭の0が省かれている(例:0F ではなく F)ことを意味します。