16進数→ASCII変換ツールとは?
16進数→ASCII変換ツールは、16進数(Hex)で書かれた値を、それが表す読める文字へと戻すためのツールです。コンピューターはすべての文字を数値として保存しており、16進数(基数16)はそのバイト値をコンパクトに表記する方法です。本ツールは入力された16進数を読み取り、2桁ずつのペアに分割し、各ペアを数値に変換したうえで、その数値を対応する文字へマッピングして、元のテキストを復元します。
使い方
16進数の文字列を入力ボックスに貼り付けるか、直接入力してください。バイトの区切りはスペースでもカンマでも、あるいは区切りなしの連続した文字列でも構いません。0x のプレフィックスも自動的に無視されます。計算ボタンを押すと、デコードされたテキストが瞬時に表示され、何バイトをデコードしたかのカウントも合わせて確認できます。
計算の仕組み
16進数は基数16なので、2桁の16進数で1バイト(0〜255の値)を表します。各ペア p について int(p, 16) を計算して10進数のコードを求め、続いて chr(code) でその文字を取得します。デコード処理の全体は次のように表せます。
たとえばペア 48 は \(4 \times 16 + 8 = 72\) となり、文字コード72は大文字の H です。
具体例で見てみよう
16進数の文字列 48 65 6C 6C 6F を例にします。各ペアを変換すると、\(48 \to 72 \to\)「H」、\(65 \to 101 \to\)「e」、\(6C \to 108 \to\)「l」、\(6C \to 108 \to\)「l」、\(6F \to 111 \to\)「o」。これらをつなげると Hello になります。
よくある質問(FAQ)
バイトの間にスペースは必要ですか? いいえ。スペース・カンマ・0xプレフィックスはすべて任意で、デコード前に自動的に取り除かれます。
桁数が奇数になった場合はどうなりますか? 有効なバイトには16進数2桁が必要なため、最後に余った1桁は無視されます。
大文字・小文字の指定は必要ですか? どちらでも問題ありません。6c も 6C も同じ結果にデコードされます。