进制转换

输入 2 到 36 任意进制的整数,同时得到二进制、八进制、十进制、十六进制与三十六进制结果。大数用 BigInt 精确换算,每行都能一键复制。

空格、逗号与下划线会被自动忽略,从别处复制的分组数字可以直接粘贴。

进制决定数字里字母的含义。16 进制的 f 等于十进制的 15。

分组只影响显示。

不补零时按最短形式显示。

输入数值后五行结果会随输入实时刷新。数字字符为 0-9 与 a-z,字母不区分大小写。

二进制(2)
等待输入。
八进制(8)
等待输入。
十进制(10)
等待输入。
十六进制(16)
等待输入。
三十六进制(36)
等待输入。

使用说明

  1. 填写输入进制:默认十进制,也可以直接输入 2 到 36 之间的任意整数。点 2、8、10、16、36 的快捷按钮可以快速切换。
  2. 输入或粘贴数值:字母不区分大小写,空格、逗号与下划线会被忽略,结果随每次按键实时刷新。
  3. 按需调整显示:字母大小写、千分位分组、位宽补零都在下方选项里,改动后五行结果立刻重新渲染。
  4. 需要固定位宽时选 8、16 或 32 位,二进制、八进制与十六进制会补足到对应位数,负数按补码输出。
  5. 点任意一行右侧的「复制」按钮,把该进制结果复制到剪贴板,复制内容不带分组分隔符。

常见问题

为什么很大的数字也不会算错?
换算全程使用 BigInt 做任意精度整数运算。JavaScript 的 Number 只能精确表示 2 的 53 次方以内的整数。再大的值会出现末位漂移,而哈希值、内存地址、雪花算法 ID 常常是 64 位。本工具把 2 的 64 次方减一写成 18446744073709551615,二进制 64 位一位不少。
支持哪些字符?可以输入小数吗?
数字字符为 0-9 与 a-z 共 36 个,对应数值 0 到 35,字母不区分大小写。空格、逗号与下划线会被当作分隔符忽略。本工具只处理整数,小数点、正负号以外的符号、全角数字都会报错,提示里会指出出错的字符与位置。
切换输入进制会把当前数值换算过去吗?
不会。输入进制只改变解析方式,数值本身保持原样。例如 255 从十进制切到十六进制后表示 0x255,也就是十进制的 597。想换算请保持原进制不动,从下方对应那一行读取结果。
千分位分组会影响复制的内容吗?
不会。分组只是屏幕上的显示效果,十进制每 3 位用逗号隔开,其他进制每 4 位用空格隔开。复制按钮给出的始终是去掉分隔符的纯数字,可以直接粘进代码、配置或命令行。
位宽补零和负数是怎么处理的?
选择 8、16 或 32 位后,二进制、八进制与十六进制会补足到对应位数,十进制与三十六进制保持原样。负值按补码输出,例如 8 位的 -1 显示为 11111111、ff。超出该位宽可以表示的范围时,工具会直接报错并给出上下限,不做截断。

使用步骤

  1. 选择输入进制

    在输入框上方填写 2 到 36 的进制,也可以点常用进制的快捷按钮。进制决定数字里字母的含义,16 进制的 f 等于十进制的 15。

  2. 粘贴或输入数值

    把数值填进输入框,不需要点任何按钮,下面五行结果随每次按键实时刷新。空格、逗号与下划线会被自动忽略,从别处复制的分组数字可以直接粘贴。

  3. 按需打开显示选项

    含字母的进制可以切换大小写,长数字可以开启千分位分组,只看不复制时分组更易读。需要固定位宽时选 8、16 或 32 位,二进制等结果会补足到对应位数。

  4. 复制需要的进制结果

    点某一行右侧的「复制」按钮,得到的是不带分组分隔符的纯数字,可以直接粘进代码或配置文件。

工具详细介绍

不同进制只是同一个数值的不同写法。二进制每位只有 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 才能得到可靠的上下限。

典型使用场景

  1. 核对摘要与地址

    把 MD5 或 SHA-256 摘要粘进输入框,进制选 16,立刻得到对应的二进制与十进制写法。内存地址、颜色值、UUID 片段也能这样来回对照,粘贴前记得去掉空格与连字符,工具会自动忽略它们。

  2. 嵌入式与协议字段

    寄存器手册常把位域写成十六进制,网络协议头按位定义字段。把手册里的值填进来,选 8 位或 16 位补零,二进制结果就与手册的位编号逐位对齐。掩码与位移有没有写错一眼就能看出来。

  3. 排查编号与时间戳

    雪花算法 ID、订单号与 Base36 短链都是大整数换了种写法。先用十进制看清原值,再切到三十六进制确认编号规则,前后端字符串与数据库数值对不上时,多半是进制理解或精度处理出了偏差。

使用技巧

  • 十六进制结果默认小写,对接要求大写的接口时先切换大小写再复制,省去手工改写。
  • 千分位分组只影响屏幕显示,复制按钮给出的是不带分隔符的原始数字。
  • 负数在开启位宽补零后按补码输出,例如 8 位的 -1 会显示为 11111111 与 ff。

注意事项

  • 切换进制不会换算

    输入进制只改变解析方式,值 255 从十进制切到十六进制后表示的是 597,而不是自动变成 ff。想换算就保持输入进制不动,从下方十六进制那一行读取结果,这样不会把手里的数值改错。

  • 小数与全角字符会被拒绝

    带小数点的数值会在小数点处报错,需要先取整。全角数字、中文逗号与货币符号同样不合法,提示会指出具体位置与字符,把输入换成半角数字就能通过。

  • 位宽补零不做截断

    选了 8 位却输入 256,工具会直接报错并给出范围,不会悄悄截成 0。位宽选项只作用于二进制、八进制与十六进制,十进制与三十六进制始终保留带符号的原值。

相关工具