什么是十六进制转 ASCII 转换器?
十六进制转 ASCII 转换器能把十六进制数字还原成它们所代表的可读文本字符。计算机会把每个字符都存储为一个数字,而十六进制(16 进制)是书写这些字节值的一种简洁方式。本工具会读取你输入的十六进制内容,按两位一组拆分,将每一组转换为对应的数值,再把数值映射成字符——从而还原出原始文本。
使用方法
把你的十六进制字符串粘贴或输入到文本框中。字节之间可以用空格或逗号分隔,也可以写成一串连续的字符——工具还会自动忽略 0x 前缀。点击计算后,解码后的文本会立刻显示出来,并附上成功解码的字节数量。
计算原理
十六进制是 16 进制,因此两位十六进制数字正好表示一个字节,取值范围为 0 到 255。对于每一组 p,我们先用 int(p, 16) 得到十进制编码,再用 chr(code) 得到字符。
$$\text{ASCII} = \bigsqcup_{k=0}^{n-1} \text{char}\Big(\,\text{hex}_{16}\big(\,\text{Hex Input}[2k\,..\,2k{+}1]\big)\Big)$$
举个例子,字节对 48 等于 \(4\times16 + 8 = 72\),而编码 72 对应的字符就是大写字母 H。
实例演示
以十六进制字符串 48 65 6C 6C 6F 为例,逐组转换:\(48 \to 72 \to \text{"H"}\),\(65 \to 101 \to \text{"e"}\),\(6C \to 108 \to \text{"l"}\),\(6C \to 108 \to \text{"l"}\),\(6F \to 111 \to \text{"o"}\)。拼接起来就是 Hello。
常见问题
字节之间一定要加空格吗? 不需要。空格、逗号和 0x 前缀都是可选的,在解码前会被自动去除。
如果我输入的数字位数是奇数怎么办? 最后多出来的单个数字会被忽略,因为一个有效字节需要两位十六进制数字。
必须用大写还是小写? 大小写都可以——6c 和 6C 的解码结果完全一致。