> 编码 | 解码 | 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 对比

编码每字符位数体积增加
Base164100%
Base32560%
Base64633%

// 代码中的 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)。