按 ⌘K 切换工具
FORMAT & CONVERT
进制转换工具
在不同进制之间转换数值。
number-base
§01 关于此工具
概述
二进制、八进制、十进制、十六进制是开发者真正会用到的四种进制——位掩码、Unix 权限位、
日常数值,以及内存地址或颜色码。这个工具让四种表示保持同步:编辑其中任意一个输入框,
另外三个立刻重新计算。因为底层是 BigInt,任意长度的值都能精确转换,
不像那些受 53 位浮点数限制的转换器。
四个输入框同时可见这一点本身就有用:调试一个位掩码时,你要的往往不是某一个转换结果, 而是同一个值在二进制和十六进制下的样子摆在一起看。
使用方法
- 在四个输入框中任选一个输入整数:Binary (base 2)、Octal (base 8)、Decimal (base 10) 或 Hex (base 16)。
- 另外三个输入框随着你的输入更新。
- 如果某个字符不属于该输入框的进制,会出现类似
Invalid hex digits的错误,其余输入框保持上一个有效值。
示例
- 十进制
255→ 二进制11111111、八进制377、十六进制ff - 十六进制
deadbeef→ 十进制3735928559 - 十进制
18446744073709551615(2^64 − 1)→ 十六进制ffffffffffffffff,精确无舍入
说明
只输入数字符号——0x、0b、0o 这类前缀不被接受,进制由输入框本身决定。
十六进制输入不区分大小写。错误只影响正在编辑的那个输入框,
因此输入过程中的中间状态不会把其他字段的内容清空。
FAQ
我输入的数字会被发送到别处吗?
不会。转换完全在浏览器内使用 JavaScript BigInt 完成,不发起网络请求,也不做存储。
数字大小有上限吗?
实际上没有。工具使用 BigInt 而不是浮点数,因此远远超过 2^53 的值也能精确转换,不存在舍入或精度丢失。
能转换负数或小数吗?
不能。工具只接受非负整数——字符校验会拒绝负号和小数点,因为 2、8、10、16 进制的输入框各自只允许自己那一套数字符号。