⌘K 切换工具
FORMAT & CONVERT

进制转换工具

在不同进制之间转换数值。

local
number-base
§01 关于此工具

概述

二进制、八进制、十进制、十六进制是开发者真正会用到的四种进制——位掩码、Unix 权限位、 日常数值,以及内存地址或颜色码。这个工具让四种表示保持同步:编辑其中任意一个输入框, 另外三个立刻重新计算。因为底层是 BigInt,任意长度的值都能精确转换, 不像那些受 53 位浮点数限制的转换器。

四个输入框同时可见这一点本身就有用:调试一个位掩码时,你要的往往不是某一个转换结果, 而是同一个值在二进制和十六进制下的样子摆在一起看。

使用方法

  1. 在四个输入框中任选一个输入整数:Binary (base 2)Octal (base 8)Decimal (base 10)Hex (base 16)
  2. 另外三个输入框随着你的输入更新。
  3. 如果某个字符不属于该输入框的进制,会出现类似 Invalid hex digits 的错误,其余输入框保持上一个有效值。

示例

  • 十进制 255 → 二进制 11111111、八进制 377、十六进制 ff
  • 十六进制 deadbeef → 十进制 3735928559
  • 十进制 18446744073709551615(2^64 − 1)→ 十六进制 ffffffffffffffff,精确无舍入

说明

只输入数字符号——0x0b0o 这类前缀不被接受,进制由输入框本身决定。 十六进制输入不区分大小写。错误只影响正在编辑的那个输入框, 因此输入过程中的中间状态不会把其他字段的内容清空。

FAQ
我输入的数字会被发送到别处吗?
不会。转换完全在浏览器内使用 JavaScript BigInt 完成,不发起网络请求,也不做存储。
数字大小有上限吗?
实际上没有。工具使用 BigInt 而不是浮点数,因此远远超过 2^53 的值也能精确转换,不存在舍入或精度丢失。
能转换负数或小数吗?
不能。工具只接受非负整数——字符校验会拒绝负号和小数点,因为 2、8、10、16 进制的输入框各自只允许自己那一套数字符号。