进制转换器(2 至 36 进制)
在 2 到 36 之间的任意进制间转换数字,支持任意精度:二进制、八进制、十进制、十六进制、负数和小数。免费,在浏览器中运行。
支持任意大小(任意精度)。负数前加 -,小数用 .;空格、_ 以及 0x / 0o / 0b 前缀会被忽略。
11111111377255FF73什么是 进制转换器?
这个转换器可将 2 到 36 之间任意进制的数字改写为二进制、八进制、十进制、十六进制,以及你选择的一个额外进制。它使用任意精度整数,因此 64 位及更大的数值也能精确转换,并支持负数和小数部分。
如何使用 进制转换器
- 在数字中输入数值,例如
255、-10、ff.8或0b1010。 - 选择该数字使用的输入进制(2 到 36)。
- 如果需要 2、8、10、16 之外的进制,请选择额外目标进制。
- 切换字母大写或数字分组以提升可读性,并复制任意结果行。
示例
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)。补码取决于固定的位宽,而这个通用工具不做此假设。