跳到主内容
UniKit

任意进制转换

2–36 进制大整数互转:基于 BigInt 不受 2^53 精度限制,一次输入同时输出二进制、八进制、十进制、十六进制、32/36 进制与自定义字母表,支持负数、分组显示、位宽与二进制补码,并对非法字符定位提示。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

输入

允许前缀 0x / 0b / 0o,以及空格、下划线、逗号作为分隔符。

结果

二进制 → 11111111
八进制 → 377
十进制 → 255
十六进制 → FF
32 进制 → 7V
36 进制 → 73
二进制11111111
八进制377
十进制255
十六进制FF
32 进制7V
36 进制73

这个工具能做什么

  • 读汇编、协议文档或抓包数据时,把 0x1F、0b11111 这类写法换算成十进制,或者反过来把十进制写成十六进制、二进制。
  • 调 bitmask、权限位、寄存器或颜色通道时,一次看到二进制、十六进制与 8/16/32/64 位补码,不用在脑子里做位运算。
  • 处理超出 2^53 的大整数(雪花 ID、哈希前缀、以分为单位的金额)时用 BigInt 精确换算,不会掉精度。
  • 非标准字符集场景:Base32/Base36 短链、订单号等用自定义字母表编码的编号,可以直接用同一套字母表读写。

示例

输入

255

输出

二进制 → 11111111
八进制 → 377
十进制 → 255
十六进制 → FF
32 进制 → 7V
36 进制 → 73

示例使用输入进制 10、默认字母表 0–9A–Z、不分组、不限位宽;输入里的 0x / 0b / 0o 前缀与空格、下划线、逗号都会被忽略。

常见问题

为什么十进制 255 的 32 进制是 7V?

32 进制取默认字母表 0–9A–Z 的前 32 个字符,数字用 0–9、字母只到 V。255 = 7 × 32 + 31,而 31 对应的字符是 V,所以结果是 7V。换成 36 进制后字母可以用到 Z,255 就写成 73。

能转小数吗?

不能,只接受整数。小数点在任意进制下都是非法字符,会直接报错并指出是第几个字符;需要小数请用普通浮点计算,这里的转换基于 BigInt,天然只有整数。

位宽和二进制补码是干什么的?

选择 8 位后,输入 255 会显示位模式 11111111、补码有符号值 -1,这就是 -1 在 8 位下的内存表示。输入超出该位宽的表示范围时会给出提示,并按位宽取模显示位模式,方便排查截断问题。

自定义字母表怎么用,有什么限制?

字母表同时用于读输入和生成「自定义字母表」那一行输出,长度必须不小于进制、且不能有重复字符,否则报错。如果内容和默认 0–9A–Z 的前 N 位一致,工具会按默认字母表处理。

输入的数据会被上传吗?

不会。所有换算都在浏览器里用 BigInt 完成,页面不发送网络请求,断网也能用,转换的数值不会被记录。

关键词:进制转换base converterbinary十六进制hexbigint二进制八进制base36补码two’s complement

同类工具