使用方法
- 选择当前数字的进制:二进制、八进制、十进制、十六进制,或其他 2 到 36 进制。
- 输入或粘贴数字。支持 0x 这样的前缀和 _ 这样的分隔符。
- 同时查看该数字在各种进制下的表示,并复制所需结果。
- 使用最后一行转换为其他进制,例如转换为 36 进制以生成短 ID。
工作原理
位值制会将一个数写成各位数字与底数幂次的乘积之和。在二进制(基数为 2)中,每位数字是一个比特;在八进制(基数为 8)中,每位数字代表 3 个比特;在十六进制(基数为 16)中,每位数字代表 4 个比特,并用字母 A–F 表示 10 到 15。大于 16 的进制继续使用字母,最高可到 36 进制,此时会用到数字 0–9 和字母 A–Z。
转换器使用 JavaScript BigInt 运算,因此可以精确转换任意长度的数字。普通浮点数超过 9,007,199,254,740,991 (2^53 − 1) 后会失去精度,因此有些转换器处理 64 位数值时会给出错误结果。
系统会根据所选进制逐位检查输入。遇到第一个无效字符时,会报告其位置,例如二进制数中的 2,或十六进制数中的 G。字母不区分大小写。空格和下划线会被忽略,因此可以粘贴 1111_0000 或 DE AD BE EF 这样的数值。支持前缀 0b(二进制)、0o(八进制)和 0x(十六进制);如果输入进制设为十进制,且数字以这些前缀之一开头,则以前缀指定的进制为准。
负数会转换为负号加绝对值(−255 的十六进制表示为 −FF)。本工具不会显示二进制补码表示,因为二进制补码取决于固定的位宽,例如 8、32 或 64 位。不支持小数:只能转换整数。
示例
读取十六进制颜色值或字节值
0xFF 的十进制表示为 255,二进制表示为 1111 1111,即一个字节的最大值。颜色值 #FF0000 中的 FF 也表示红色值为满值。
Unix 文件权限
八进制权限值 755 的二进制表示为 111 101 101:所有者拥有读取、写入和执行权限(7),组用户和其他用户拥有读取和执行权限(5)。其十进制值为 493。
较大的 64 位数值
最大的无符号 64 位整数,其十六进制表示为 FFFF FFFF FFFF FFFF,十进制表示为 18446744073709551615。转换会逐位精确完成,不会进行舍入。
常见问题
如何手动将二进制转换为十进制?
将每个比特乘以对应的 2 的幂次(从右侧开始,幂次从 0 起),再把结果相加。以 1011 为例:1×8 + 0×4 + 1×2 + 1×1 = 11。
为什么二进制和十六进制按四位分组?
一个十六进制数字恰好对应四个比特,因此将二进制每四位分为一组,就能对应到十六进制数字:1101 1110 对应 DE。这样就能轻松地目测完成两者之间的转换。
数字长度有限制吗?
没有固定的最大值。由于本工具使用 BigInt,包含数百位或数千位的数字也能精确转换。在较慢的设备上,处理特别长的输入可能需要一些时间。
可以转换负数或分数吗?
支持负整数,转换结果会保留负号。不支持分数和小数点;小数点会被报告为无效字符。
36 进制有什么用途?
36 进制使用 0–9 和 A–Z,是一种紧凑且不区分大小写的字母数字表示法。它用于短 ID 和 URL 缩短服务:例如,1,000,000 的 36 进制表示为 LFLS。
隐私
所有转换都在浏览器中完成。你输入的数字不会上传、存储,也不会用于分析。