双向进制转换器 - 十进制、Hex、Base32、Base64

在十进制与 Base16(十六进制)、Base32、Base64 之间进行双向数字转换,并自动检测已编码值所属的进制。输入十进制数字即可同时得到 Base16、Base32 和 Base64 三种编码结果,也可粘贴已编码的值一键解码还原为十进制数字,适合开发者处理颜色代码、哈希值、Base64 数据等常见场景。

双向进制转换器

在十进制数字和标准进制编码(Base16/十六进制、Base32、Base64)之间进行转换。在任一字段中输入值即可转换。

输入一个正整数(最大值:9,007,199,254,740,991)

输入Base16、Base32或Base64编码值

关于进制编码

Base16(十六进制): 使用字符0-9和A-F。每个字符表示4位。常用于颜色代码和内存地址。
Base32: 使用字符A-Z和2-7。每个字符表示5位。不区分大小写且易于阅读。
Base64: 使用字符A-Z、a-z、0-9、+和/。每个字符表示6位。常用于在文本中编码二进制数据。
安全整数限制: JavaScript可以安全地表示最大到9,007,199,254,740,991(2^53 - 1)的整数,不会丢失精度。
📚

文档

双向进制转换器:十进制 ↔ Base16、Base32、Base64

进制转换器将一个数字从一种书写方式转换为另一种书写方式。计算机、URL 和数据格式很少直接存储纯十进制数字——它们通常会将其打包为更紧凑或更适合传输的编码方式,例如 Base16(十六进制)Base32Base64。本工具可实现双向转换:输入一个十进制数字,即可看到它对应的 Base16/Base32/Base64 形式;或者粘贴一个已编码的值,获取其十进制数字。它还能自动检测已编码值所使用的进制。

“进制”的含义

每一种位值计数系统都有一个进制(或称基数,radix)——即用于表示单个数位所使用的不同符号的数量。十进制的基数是 10(符号为 0-9)。本文所述的编码方式则用更大的符号集换取更短的字符串:

  • Base16(十六进制)——符号为 0-9A-F。每个字符表示 4 位(bit)。广泛用于颜色代码(#FF0000)、内存地址和哈希值。
  • Base32——符号为 A-Z2-7(RFC 4648)。每个字符表示 5 位(bit)。不区分大小写,且不含容易混淆的字符,因此适合口述或手动输入。
  • Base64——符号为 A-Za-z0-9+/(RFC 4648)。每个字符表示 6 位(bit)。是通过电子邮件或 JSON 字段等纯文本通道传输二进制数据的标准方式。

进制越高,表示同一个数字所需的字符就越少——但需要区分的符号集也就越大。

如何使用该转换器

该工具提供两个输入框,无论你在哪一个中输入,它都能正常工作:

  • 十进制 → 编码值。 在十进制输入框中输入一个正整数,工具会同时显示其 Base16、Base32 和 Base64 形式。
  • 编码值 → 十进制。 在编码值输入框中粘贴一个 Base16、Base32 或 Base64 值,工具会自动检测其进制、校验字符是否合法,并返回对应的十进制数字。

取值范围与校验

数值范围受限于 JavaScript 的最大安全整数 9007199254740991(即 2^53 − 1)。超过这个范围后,整数将无法被精确表示,若转换器继续计算,会在不知不觉中返回错误的数字——因此本工具会报告“超出范围”的错误,而不是给出猜测结果。十进制输入必须为非负整数;编码值输入则必须只包含其对应进制的合法字符,否则工具会予以提示,而不是解码出乱码。

示例演算

  • 十进制 255。 Base16 = FF,因为 255 = 15×16 + 15,两个数位都是 F。这也是 #FFFFFF 表示白色的原因:三个字节均取到最大值。
  • 十进制 1000。 Base16 = 3E8(3×256 + 14×16 + 8 = 1000)。
  • 解码 FF 系统检测为 Base16,解码结果为 255
  • 一个字节取最大值时为 8 位,用十六进制表示即为 FF——每 4 位对应一个十六进制字符,因此一个字节需要两个字符。同一个字节若用 Base32 表示则需要更长的字符串,用 Base64 表示还需要填充,这也是为什么在颜色、地址等短数值场景中,十六进制始终是最易读的选择。

各编码方式的应用场景

  • Base16——CSS/HTML 颜色、MAC 和 IPv6 地址、加密哈希值和校验和、二进制文件的十六进制转储。
  • Base32——TOTP/2FA 密钥、部分文件共享和基于 DNS 的系统,以及需要避免大小写和字符混淆的手动输入或口述标识符。
  • Base64——data: URI、电子邮件附件(MIME)、在 JSON 或 XML 中嵌入图片或证书、JWT 令牌。

由于每种编码方式只是同一个数字的不同表示形式,在它们之间转换永远不会改变数值本身——改变的只是书写所需的字符数量,以及它能够安全通过哪些传输通道。

🔗

相关工具

发现更多可能对您的工作流程有用的工具