ff
b211111111
b8377
b10255
b16ff
b327v
b3673
功能说明
在二进制 (2)、八进制 (8)、十进制 (10) 和十六进制 (16) 之间转换数字。它由 BigInt 驱动,因此任意大小的数值都能精确转换 - 300 位的十进制数或 64 位的 0xffffffffffffffff 不会损失任何浮点精度(普通 Number 转换器超过 2^53 便难逃此劫)。
解析器在有帮助的地方保持宽容:与源进制匹配的 0x/0b/0o 前缀会被接受,字母大小写均可,开头的 +/- 符号会被保留,两侧的空白会被去除。对源进制非法的数字(如十进制中的 f)会以明确的错误拒绝,而不是给出错误答案。100% 客户端运行。
使用方法
- 用左侧的分段控件选择源进制(BIN / OCT / DEC / HEX)。
- 用右侧的分段控件选择目标进制。
- 点击两者之间的 swap 按钮,一键反转转换方向。
- 在 Input 中输入或粘贴数字 - 结果立即出现在 Output 中。
- 点击输出侧的 Copy 获取转换后的值。
- 阅读转换器下方的 All bases 面板:解析后的值同时以 2、8、10、16、32、36 进制实时显示,每行都有自己的复制按钮。它按源进制读取输入,输入无法解析时面板消失。
- 工具标记无效输入时请修正:对源进制非法的数字会在输出位置显示 “Invalid digit for base N”。
你也可以通过 URL 参数预加载打开该工具:?v=<value>&from=<base>&to=<base>(例如 /tools/number-base?v=255&from=10&to=16)。
示例
以下结果通过运行 src/lib/numberBase.ts 中的 convertBase()(工具实际使用的那个函数)验证:
255 in DEC → HEX: ff
255 in DEC → BIN: 11111111
255 in DEC → OCT: 377
ff in HEX → DEC: 255 (0xff also works)
0b1010 in BIN → DEC: 10
-ff in HEX → BIN: -11111111 (sign carries through)
ff in DEC → — error: "Invalid digit for base 10"
任意精度 - Number 型转换器会静默出错的地方:
18446744073709551615 DEC → HEX: ffffffffffffffff (2^64 − 1, exact)
deadbeefcafebabe HEX → DEC: 16045690984503098046 (64-bit pattern, exact)
2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376
DEC → HEX: 1000000000000000000000000000000000000000000000000000000000000000000000000000
(a 79-digit decimal → 76 hex digits, digit-for-digit exact)
补充说明
- 私密: 转换完全在你的浏览器中运行。
- UI 中的进制仅限 2、8、10、16。底层解析器支持 2-36 的全部进制,但只暴露这四种。
0x/0b/0o前缀只在匹配源进制时才会被剥离。0b1010在 BIN 下是10;同一段文本在 HEX 下会被解析为十六进制数字0b1010(= 725008),而0x1f在 DEC 下会因非法数字被拒绝(x不是十进制数字)。- 负数带符号转换;没有补码模式。
- 相关工具: Bitwise Calculator、Hex ↔ Text Converter、Base32 / Base58 / Base62 / Base85 Encoder