> 编码 | 解码 | hex <
// Base16(十六进制)编码用于简单二进制数据表示
[简单]
简单易用
最简单的二进制编码形式,每个字节用两个十六进制字符表示。
[安全]
本地处理
所有转换都在您的浏览器中进行。您的数据永远不会离开您的设备。
[标准]
通用标准
使用标准十六进制格式,与所有编程语言和系统兼容。
>> 技术信息
Base16工作原理:
Base16使用16个字符(0-9和A-F)编码二进制数据。每个字节(8位)被表示为两个十六进制数字(4位+4位)。
示例:
"你好" → E4BDA0E5A5BD
为什么使用Base16:
- >最简单的二进制编码形式
- >调试和开发中常用
- >颜色代码和内存地址表示
- >所有字符都可打印
- >易于人类阅读和验证
>> 常见问题
什么是Base16编码?
Base16,也称为十六进制编码,是一种使用16个字符(0-9,A-F)来表示二进制数据的编码方案。每个字节用两个十六进制字符表示。
Base16和十六进制有什么区别?
Base16和十六进制是同一概念的不同名称。Base16是正式的编码名称,而十六进制是更常用的术语。
何时使用Base16编码?
Base16常用于调试、日志记录、颜色代码、内存地址表示以及需要人类可读的二进制数据表示的场合。
Base16安全吗?
Base16不是加密方法,而是编码方案。它不提供任何安全性,任何人都可以轻松解码Base16数据。
// Base16 对比
| 编码 | 每字符位数 | 体积增加 |
|---|---|---|
| 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()
>> 更多问题
问:为什么 Base16 会让数据大小翻倍?
答:每个字节变成两个字符,开销为 100%。Base64 只增加约 33%,但 Base16 更易阅读和调试。
问:Base16 与带 0x 或空格的十六进制字符串有何区别?
答:RFC 4648 的 Base16 是纯粹的 0–9、A–F 数字序列,没有前缀和分隔符。0x 前缀或字节间的空格只是显示习惯,解码前应先去掉。
问:为什么合法的 Base16 字符串长度必须为偶数?
答:每个字节恰好两位数字。长度为奇数说明缺了字符或省略了前导零(例如写成 F 而不是 0F)。