进制转换

⚡ 本地运行🔒 不上传数据🆓 免登录免费

进制就是逢几进一的计数规则。十进制逢10进1,是日常习惯;二进制逢2进1,只有0和1两个数字,是计算机硬件的语言;八进制逢8、十六进制逢16进1,常被用来把长串二进制压缩成更短的写法。一个数从一种进制换到另一种进制,本质是先把它还原成数值本身,再按目标进制的规则重新表达。举例来说,十进制255写成二进制是11111111(8个1),写成十六进制是FF(F代表15)。本工具覆盖2、8、10、16、32、36六种进制,输入哪种都能一键换到其余任意一种,底层用JavaScript的BigInt整数运算,位数再长也不会丢精度。

典型场景有三类。第一,写代码看底层数据:调试串口协议、解析寄存器位段、对照内存dump时,日志里一串十六进制要换回十进制才好理解,或者把状态码转成二进制逐位看标志位。第二,学习与考试:计算机组成原理、数字逻辑课程里二进制与十六进制互转是基本功,批量贴题进来一次对答案,效率远高于手算。第三,进制编码与短码场景:36进制(0-9加A-Z)常被用来把长数字ID压成短字符串,粘过来即可还原原始数字。

边界情况要提前知道。各位数字必须小于进制数:二进制里出现2、八进制里出现8,都会被明确标为非法行,不会给你一个蒙出来的结果。字母不区分大小写,ff和FF等价。负数正常支持(结果带负号);0x、0b、0o前缀会自动剥离,十六进制输入贴进来不用手删前缀。超大整数用BigInt精确计算,几百位的数字也能转换,只是输出会很长。小数部分不支持:带小数点的输入会被当成非法字符报错,需要分数进制转换请另用专门工具——这也是诚实边界,宁可报错,不给你一个看起来对、其实错的结果。

为什么值得用本地工具做进制转换?因为你贴进来的往往是寄存器值、协议报文、设备序列号这类不该外传的数据。本工具全部计算都在浏览器本地完成,没有后端接口,不发起任何网络请求,敏感数值贴进来也放心。用完清空输入即可,不留痕迹。

使用方法

  1. 在输入框粘贴数字(一行一个可批量转换,可点「填入示例」先体验)
  2. 选择源进制与目标进制,可点「交换」快速对调
  3. 结果实时显示,下方同时给出该数在2/8/10/16/32/36全部进制下的对照表
  4. 点「复制结果」导出;带0x/0b/0o前缀的输入会自动识别

常见问题

支持哪些进制?能批量转换吗?

支持2、8、10、16、32、36六种进制互转。输入框一行写一个数即可批量转换,每行独立计算;某一行非法只标红该行,不影响其他行。下方还有全部进制对照表,第一个合法数值在六种进制下的写法一次看全。

提示某行非法数字是什么意思?

说明那一行里有数字大于或等于源进制。比如源进制选了二进制却出现2,选了八进制却出现8,就会报错。也可能是字母超出范围(如十六进制里出现G)。改对数字或选对源进制即可;0x、0b、0o前缀会自动剥离,不用手删。

很大的整数会不会丢精度?

不会。本工具底层用JavaScript的BigInt整数运算,不走浮点数,几百位的整数也能精确转换。注意:这和普通计算器用浮点数的实现不同,普通Number超过2的53次方就会丢精度,这里没有这个限制。

支持小数和负数吗?

负数支持,结果直接带负号。带小数点的输入目前不支持,会报非法字符——分数部分的进制转换容易产生无限循环小数(如十进制0.1转二进制),给出近似值反而容易误导,所以本工具只做整数部分。用前请确认你的数没有小数位。

我的数字会被上传吗?

不会。全部转换都在你的浏览器本地完成,页面没有后端接口,不会发送任何网络请求。寄存器值、协议报文这类敏感数据也可以放心贴,关掉页面即不留痕迹。