进制转换器
在二进制、八进制、十进制和十六进制之间转换
在二进制、八进制、十进制和十六进制之间转换
每个数字系统都是按位计值的:一个数字的值取决于它所在的位置。整数的值是每一位数字乘以进制的该位次幂(从右侧的零次幂开始)再求和。转换时,工具把清理后的输入解析成一个 JavaScript 数字,再按目标进制重新编码。小数则单独处理。每个小数位的值是该数字除以进制的位次幂,为了输出结果,工具把小数反复乘以目标进制,取整数部分作为下一位数字,并保留余数继续。正是这种反复相乘导致非有限小数被截断。
在这之前,输入会被清理:去掉下划线、逗号和空格,并把字母转为大写。这样你可以直接粘贴像 1111_0000 这样分组好的二进制,或像 1,024 这样格式化过的十进制,无需预处理。
简单整数。 十进制 255 变成二进制 11111111、八进制 377、十六进制 FF。反过来读:255 是 2^8 - 1,所以二进制是八个 1,十六进制用两个 F,每个 F 代表 15。
带字母的十六进制。 十六进制 1A4 变成十进制 420。验证:1 × 256 + 10 × 16 + 4 = 420。用二进制表示是 110100100,用八进制是 644。
会循环的小数。 十进制 0.1 变成二进制 0.00011001、八进制 0.06314631、十六进制 0.19999999。三者都是对该值在这些进制中无精确有限表示的截断近似。
二进制小数。 二进制 1010.101 变成十进制 10.62500000、八进制 12.5、十六进制 A.A。小数部分 .101 是 1/2 + 0/4 + 1/8 = 0.625。
| 进制 | 数字 | 输出前缀 |
|---|---|---|
| 二进制(2) | 0-1 | 0b |
| 八进制(8) | 0-7 | 0o |
| 十进制(10) | 0-9 | 无 |
| 十六进制(16) | 0-9、A-F | 0x |
前缀按钮会给复制的结果加一个修饰。它们只作用于与你在输入端所选进制相匹配的那一行结果。例如,你输入一个十六进制值并选择 0x,只有十六进制那一行会带前缀;二进制、八进制和十进制行保持原样。切换输入进制后,前缀会随之移动,因为它始终绑定源进制,而不是全局应用。
0.5 显示为 0.50000000;其他进制会去掉末尾的零。000255 和 255 转换结果相同。10 当作十。 它是二;位的权重是 2 的幂。0x1F 在十六进制字段会失败,因为 x 不是十六进制数字;请输入 1F 并使用开关。1,5 会被读成 15,而不是 1.5。网页颜色通道。 FF5733 这样的 CSS 十六进制颜色是三个用 16 进制写成的字节。把进制设为十六进制,分别输入 FF、57、33,它们会变成十进制 255、87、51,正好是 RGB 三元组。工具转换的是整个值,所以请先把六位字符串拆成两两一组。
Unix 文件权限。 755 这样的权限模式是按八进制读的,不是十进制。把 755 从 8 进制转换,得到二进制 111101101,按 111(读、写、执行)分给属主、101 分给组、101 分给其他人。十进制 493 是同一个值,这也是为什么权限计算器更适合这项具体任务。
位掩码和标志。 写作二进制 00001111 的掩码是十进制 15、十六进制 F。在这些表示之间转换,更容易推断哪些位被置位。
调试器地址。 崩溃日志可能显示地址 0x7FFE0A10。需要查看各个位时,把它从十六进制转成十进制 2147352592 或二进制。
有两条捷径可以快速验证工具的输出。从二进制转十六进制时,从右往左把位分成四位一组并逐组转换:110100100 变成 1 | 1010 | 0100,也就是 1A4。从二进制转八进制时改为三位一组:110 | 100 | 100 变成 644。两者都与前面的示例一致,因此如果手动分组与转换器不一致,请检查你从哪里开始分组。记住要从右侧开始分组,只有在需要固定宽度时才用零补齐最左边一组。
支持二进制(2 进制)、八进制(8 进制)、十进制(10 进制)和十六进制(16 进制),并在所有进制之间实时转换。
可以。转换器支持任意受支持进制下的整数和小数。
它们是编程中二进制、八进制和十六进制字面值的标准前缀。开启前缀开关后,复制结果时会自动添加。
不可以。负号在四种受支持进制中都不是合法数字,因此像 -5 这样的值会报输入无效。转换器只处理数值大小。如果确实需要处理符号,请去掉负号,转换绝对值,再在自己的代码里把符号加回去。
整数转换经过 JavaScript 的数值类型,因此只有在 2^53 - 1(即 9,007,199,254,740,991)以内才是精确的。超过这个范围,中间的十进制值会被舍入,其他进制里得到的数字可能与原值不符。对于超大整数,请使用支持任意精度整数的语言或专门的大数库。
工具会把输入和输出统一规范成大写以保持一致。它还会在解析前去掉下划线、逗号和空格,因此像 1111_0000 或 1,024 这样分组的数值可以直接粘贴转换。大小写不影响数值:ff 和 FF 都表示 255。
由 HandyTools Hub 团队审校 · 最后更新