ASCIIテキストから16進数への変換
プレーンASCIIテキストを16進数バイト表現に変換する方法を学びます。文字テーブルと実用的なエンコード例を使ったステップバイステップガイドです。
Conversion
Hex
54 65 73 74 20 31 32 33
ASCII
Test 123
詳細な説明
ASCIIから16進数への変換は、テキスト文字列の各文字を対応する2桁のhex値に変換します。このエンコーディングは、ネットワークプロトコル、設定ファイル、バイナリストリームへの書き込みなど、文字レンダリングに依存しない曖昧性のない形式でテキストデータを表現する必要がある場合に使用されます。
変換の仕組み:
入力文字列の各文字について、そのASCIIコードポイントを調べ、その10進数値を2桁の16進数として表現します。大文字のAからFが慣例的ですが、小文字でも同様に有効です。
ステップバイステップの例 — "Test 123"の変換:
- T → ASCII 84 → hex
54 - e → ASCII 101 → hex
65 - s → ASCII 115 → hex
73 - t → ASCII 116 → hex
74 - (スペース) → ASCII 32 → hex
20 - 1 → ASCII 49 → hex
31 - 2 → ASCII 50 → hex
32 - 3 → ASCII 51 → hex
33
結果: 54 65 73 74 20 31 32 33
一般的な範囲のクイックリファレンス:
- 数字0-9:
30から39— 数字の値に30を足すだけ - 大文字A-Z:
41から5A— アルファベットの位置1から始めて40を足す - 小文字a-z:
61から7A— 位置1から始めて60を足す - スペース: 常に
20
出力フォーマットのバリエーション:
hexエンコードされたテキストは、用途に応じていくつかの一般的な方法でフォーマットできます:
- スペース区切り:
48 65 6C 6C 6F— 最も読みやすく、hexエディタで使用 - コロン区切り:
48:65:6C:6C:6F— MACアドレスやTLSで一般的 - バックスラッシュエスケープ:
\x48\x65\x6C\x6C\x6F— C文字列やPythonバイト列で使用 - プレフィックス表記:
0x48 0x65 0x6C 0x6C 0x6F— プログラミング言語で使用 - 連続:
48656C6C6F— データ転送用のコンパクト形式
ASCIIからhexエンコーディングを使用するタイミング:
この変換は、バイナリプロトコルメッセージの作成、シェルコマンドのエスケープシーケンスの構築、ソースコードへのバイトリテラルの埋め込み、低レベルシステム用のテストデータの準備に頻繁に必要になります。また、特殊文字が%XX(XXはhex値)になるURLパーセントエンコーディングの基礎でもあります。
ユースケース
開発者は、生のプロトコルメッセージの作成、ソースコードへのバイト値の埋め込み、セキュリティテストやネットワークデバッグツール用のテストペイロードの準備時にASCIIからhexに変換します。