猫工具站
帮助中心 猫Blog 关于我们 广告合作 EN

🔢 进制转换器

二进制 / 八进制 / 十进制 / 十六进制实时互转,支持输入校验与一键复制。

BIN 二进制
OCT 八进制
DEC 十进制
HEX 十六进制

十进制数值 输入数字开始转换
支持最大 2⁵³−1 = 9,007,199,254,740,991

相关指南

单位换算与进制转换:因子、显示取整,和范围的两端
单位换算页每类存一个因子做乘除,进制转换页用大整数把同一个数换个写法。两台机器在中段都可靠,在边缘都会给你意外——正好 100 万会切成科学计数法,1 拍字节换出来是 1023.999994 太字节,而进制页里你正在打字的那个框会原样保留前导零。下面每个数字都是在页面本身上跑出来的。

Advertisement

四个框,只收纯数字

BIN / OCT / DEC / HEX 四个输入框都可以当起点,任意改一个,其余三个实时跟着变。每个框只接受该进制允许的数码:二进制 0 和 1,八进制 0 到 7,十六进制 0-9 和 A-F。

这里没有前缀位置:0x、0b、负号、小数点、空格和分隔符都不被接受。十六进制的字母不区分大小写,输入 abc 也能识别,但输出一律是大写的 ABC。

上限是 2⁵³−1

转换本身用 BigInt 做,不参与浮点运算,所以结果永远是精确整数。页面把可接受的最大值定在9,007,199,254,740,991,也就是 2 的 53 次方减 1——JavaScript 的普通数字能连续精确表示的最后一个整数。超过它,输入框会被标红并给出「超出支持范围」的提示。

之所以卡在这个数,是为了让页面里的数值在任何环节都不会悄悄失真:上限之内的数既能被 BigInt 精确转换,也能被当作普通数字安全使用。

校验与交互的细节

输入非法时,只有出错的那个框被标红,其余三个保留上一次的有效结果,不会一起清空,方便你回去改那一处。把内容全部删掉时,四个框和下方的十进制读数会一起清空。

下方「十进制数值」以千分位形式再显示一次当前值,分隔符固定是英文逗号,不随系统语言变化。每个输入框右侧有单独的复制按钮,提示文字约 1.2 秒后自动消失;在输入框里按 Esc 会清掉当前这一格。

常见问题

为什么超过 16 位数字就提示超出范围?
因为上限是 9,007,199,254,740,991(2⁵³−1),这是 JavaScript 普通数字能精确表示的最大整数。再往上继续放大会出现两个相邻整数共用一个浮点值的情况,页面选择直接拒绝,而不是给你一个可能错的结果。

能转负数或者小数吗?
不能。输入校验只接受数码本身,负号和小数点会被判为非法并标红。需要带符号的补码表示,或者定点小数的进制转换,这个页面都不覆盖。

输入 0x1A 提示错误,为什么?
前缀不属于可识别的语法,这个页面把整个框当作纯数字来解析。请直接填 1A,输出会是十六进制的大写形式。

为什么我粘进去带空格的分隔数字不行?
空格不被接受,任何非数码字符都会让整格判为非法。把 1 FF 3A 这样的写法改成连续的 FF3A 即可。

大数转换会不会丢精度?
在上限之内不会。四个进制之间的换算全程使用 BigInt,不存在浮点舍入;页面上限之外的数被拒收,而不是被近似处理。

复制出来的十六进制为什么一定是大写?
输出时统一做了大写化,这是十六进制的常见书写习惯。如果你的场景要求小写(例如某些颜色码或地址格式),粘贴后再转一次小写即可。