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"の変換:

  1. T → ASCII 84 → hex 54
  2. e → ASCII 101 → hex 65
  3. s → ASCII 115 → hex 73
  4. t → ASCII 116 → hex 74
  5. (スペース) → ASCII 32 → hex 20
  6. 1 → ASCII 49 → hex 31
  7. 2 → ASCII 50 → hex 32
  8. 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に変換します。

試してみる — Hex Editor

フルツールを開く