进制转换
输入 2 到 36 任意进制的整数,同时得到二进制、八进制、十进制、十六进制与三十六进制结果。大数用 BigInt 精确换算,每行都能一键复制。
使用说明
- 填写输入进制:默认十进制,也可以直接输入 2 到 36 之间的任意整数。点 2、8、10、16、36 的快捷按钮可以快速切换。
- 输入或粘贴数值:字母不区分大小写,空格、逗号与下划线会被忽略,结果随每次按键实时刷新。
- 按需调整显示:字母大小写、千分位分组、位宽补零都在下方选项里,改动后五行结果立刻重新渲染。
- 需要固定位宽时选 8、16 或 32 位,二进制、八进制与十六进制会补足到对应位数,负数按补码输出。
- 点任意一行右侧的「复制」按钮,把该进制结果复制到剪贴板,复制内容不带分组分隔符。
常见问题
为什么很大的数字也不会算错?
支持哪些字符?可以输入小数吗?
切换输入进制会把当前数值换算过去吗?
千分位分组会影响复制的内容吗?
位宽补零和负数是怎么处理的?
使用步骤
- 选择输入进制
在输入框上方填写 2 到 36 的进制,也可以点常用进制的快捷按钮。进制决定数字里字母的含义,16 进制的 f 等于十进制的 15。
- 粘贴或输入数值
把数值填进输入框,不需要点任何按钮,下面五行结果随每次按键实时刷新。空格、逗号与下划线会被自动忽略,从别处复制的分组数字可以直接粘贴。
- 按需打开显示选项
含字母的进制可以切换大小写,长数字可以开启千分位分组,只看不复制时分组更易读。需要固定位宽时选 8、16 或 32 位,二进制等结果会补足到对应位数。
- 复制需要的进制结果
点某一行右侧的「复制」按钮,得到的是不带分组分隔符的纯数字,可以直接粘进代码或配置文件。
工具详细介绍
不同进制只是同一个数值的不同写法。二进制每位只有 0 和 1,八进制三位二进制合成一位。十六进制四位二进制合成一位,三十六进制则用满 0-9 与 a-z 共 36 个符号。同一个整数在这些写法之间来回换,值本身不会改变,改变的只是记数的符号与进位节奏。本工具把输入按指定进制解析成一个整数,再分别写成五种进制,五行结果随输入同时刷新,省去反复换算的来回操作。
解析与换算全程使用 JavaScript 的 BigInt。Number 类型只能精确表示 2 的 53 次方以内的整数,再大就会出现末位漂移。哈希值、内存地址与雪花算法 ID 常常是 64 位,用 Number 计算会得到错误答案。BigInt 按任意精度做整数运算。2 的 64 次方减一可以完整写成 18446744073709551615,二进制 64 位一位不少。界面不限制数值大小,粘贴上百位的十进制整数也能一位不差地写出全部五种进制。位宽补零与分组只是显示方式,数值本身始终保持完整。
原理与背景
按位记数法把每个数位看成底数的幂次系数。底数为 b 时,从左到右第 i 位的数字 d 代表 d 乘以 b 的 i 次方,所有位相加就是数值本身。二进制只用两个符号,硬件电路的通断正好对应,因此计算机内部一律用它存储。八进制与十六进制分别是三位、四位二进制的缩写,读起来短,转换时按位对齐即可。三十六进制把十个数字与二十六个字母都用上,同样长度的符号能装下更大的范围。
固定位宽来自硬件的寄存器与协议字段。一个 8 位字段只能放下 256 个状态,写成二进制就是 8 个 0 或 1,写成十六进制正好 2 位。负数用补码表示:取绝对值、按位取反、再加一,得到的位型与正数共用同一套加法电路。8 位的 -1 是 11111111,也就是十六进制的 ff,这是开发中最常见的位型之一。判断范围时要用完整的整数比较。Number 一旦超过 2 的 53 次方就会丢精度,用 BigInt 才能得到可靠的上下限。
典型使用场景
- 核对摘要与地址
把 MD5 或 SHA-256 摘要粘进输入框,进制选 16,立刻得到对应的二进制与十进制写法。内存地址、颜色值、UUID 片段也能这样来回对照,粘贴前记得去掉空格与连字符,工具会自动忽略它们。
- 嵌入式与协议字段
寄存器手册常把位域写成十六进制,网络协议头按位定义字段。把手册里的值填进来,选 8 位或 16 位补零,二进制结果就与手册的位编号逐位对齐。掩码与位移有没有写错一眼就能看出来。
- 排查编号与时间戳
雪花算法 ID、订单号与 Base36 短链都是大整数换了种写法。先用十进制看清原值,再切到三十六进制确认编号规则,前后端字符串与数据库数值对不上时,多半是进制理解或精度处理出了偏差。
使用技巧
- 十六进制结果默认小写,对接要求大写的接口时先切换大小写再复制,省去手工改写。
- 千分位分组只影响屏幕显示,复制按钮给出的是不带分隔符的原始数字。
- 负数在开启位宽补零后按补码输出,例如 8 位的 -1 会显示为 11111111 与 ff。
注意事项
- 切换进制不会换算
输入进制只改变解析方式,值 255 从十进制切到十六进制后表示的是 597,而不是自动变成 ff。想换算就保持输入进制不动,从下方十六进制那一行读取结果,这样不会把手里的数值改错。
- 小数与全角字符会被拒绝
带小数点的数值会在小数点处报错,需要先取整。全角数字、中文逗号与货币符号同样不合法,提示会指出具体位置与字符,把输入换成半角数字就能通过。
- 位宽补零不做截断
选了 8 位却输入 256,工具会直接报错并给出范围,不会悄悄截成 0。位宽选项只作用于二进制、八进制与十六进制,十进制与三十六进制始终保留带符号的原值。