进制转换器(2 至 36 进制)

在 2 到 36 之间的任意进制间转换数字,支持任意精度:二进制、八进制、十进制、十六进制、负数和小数。免费,在浏览器中运行。

支持任意大小(任意精度)。负数前加 -,小数用 .;空格、_ 以及 0x / 0o / 0b 前缀会被忽略。

二进制11111111
八进制377
十进制255
十六进制FF
36 进制73

什么是 进制转换器?

这个转换器可将 2 到 36 之间任意进制的数字改写为二进制、八进制、十进制、十六进制,以及你选择的一个额外进制。它使用任意精度整数,因此 64 位及更大的数值也能精确转换,并支持负数和小数部分。

如何使用 进制转换器

  1. 在数字中输入数值,例如 255、-10、ff.8 或 0b1010。
  2. 选择该数字使用的输入进制(2 到 36)。
  3. 如果需要 2、8、10、16 之外的进制,请选择额外目标进制。
  4. 切换字母大写或数字分组以提升可读性,并复制任意结果行。

示例

输入
255 (base 10)
输出
Binary 11111111 · Octal 377 · Hexadecimal FF · Base 36: 73

何时使用 进制转换器

适用于读取位掩码、内存地址、颜色通道或 36 进制 ID 等编程任务。它不是补码计算器:负数使用负号表示,而不是固定宽度的位模式。

进制转换器 的工作原理

整数部分逐位读入 JavaScript 的 BigInt(值 = 值 × 进制 + 数位),因此没有 2^53 的精度限制。小数部分以精确分数 分子 / 进制^k 保存。整数输出使用 BigInt.toString(base);小数通过反复乘以目标进制并取整数部分生成,最多 32 位。如果小数不会终止(例如十进制 0.1 转二进制),结果会在 32 位后截断并显示提示。大于 9 的数位使用字母 a–z。

常见用例

  • 将十六进制内存地址转换为十进制
  • 把权限或标志值写成二进制,查看哪些位被置位
  • 把 36 进制短 ID 解码为十进制值
  • 查看 0.1 在二进制中如何表示,以及为什么不精确
  • 把 128 位十六进制数转换为十进制而不丢失位数

常见问题

数字最大可以有多大?

没有固定上限:BigInt 运算可处理数百位数字,因此像 2^128 这样的值也能精确转换。

可以使用 0x 或 0b 这样的前缀吗?

可以。与所选输入进制匹配的前缀(16 进制为 0x,8 进制为 0o,2 进制为 0b)会被忽略,用作数位分隔的空格和下划线也会被忽略。

为什么我的小数被截断了?

许多小数在另一种进制中会无限循环(十进制 0.1 在二进制中是 0.000110011…)。转换器在 32 位小数后停止,并告诉你结果已被截断。

负数会以补码显示吗?

不会。它们保留前导负号(−10 → −1010)。补码取决于固定的位宽,而这个通用工具不做此假设。

探索更多分类