数字进制转换器:二进制、十六进制、十进制和八进制
数字进制转换器可以把一个数字在二进制、十进制、八进制、十六进制之间相互转换,也支持2到36进制之间的任意组合转换。输入数字后,工具会随着输入实时更新并显示各个进制下对应的准确结果,无需点击额外按钮,适合程序员调试代码、计算机科学专业学生学习进制知识以及网络工程中处理IP地址和权限位运算。
数字进制转换器
输入时自动转换
文档
进制转换器
进制转换器会改变数字的书写方式,将其从一种位置记数制转换为另一种,同时不改变其数值。它可以将二进制转换为十进制、将十进制转换为十六进制,或在任意两个从 2 到 36 的进制之间进行转换。
什么是进制?
进制也称基数,是一种记数制在新位置开始重复使用数字之前所使用的不同数字的数量。十进制是日常计数所使用的记数制,其基数为 10。它使用十个数字,即从 0 到 9。二进制的基数为 2,只使用 0 和 1。当进制大于 10 时,字母会代替缺少的数字:A 表示 10,B 表示 11,依此类推,直到 Z 表示 35。这样,仅使用字母表中的 26 个字母和 10 个数字,就能达到基数为 36 的进制,这是大多数转换器支持的最高进制。
一个数字中的每一位都有一个由进制的幂决定的位值。在十进制中,写作“205”的数字表示 2 个百、0 个十和 5 个一,因为 100 和 10 是 10 的幂。同样的规律适用于任何进制:最右边的数字乘以基数⁰,下一位乘以基数¹,再下一位乘以基数²,依此类推。
如何将数字转换为另一种进制
将数字转换为十进制
要将任意进制中的数字转换为十进制,请将每一位乘以基数的相应次幂,位置从右侧的 0 开始计数,然后将结果相加。
公式: 数值 = dₙ × 基数ⁿ + ... + d₁ × 基数¹ + d₀ × 基数⁰
示例: 将 5进制数字 101 转换为十进制。
- (1 × 5²) + (0 × 5¹) + (1 × 5⁰)
- = 25 + 0 + 1
- = 26
因此,5进制中的 101 等于十进制中的 26。
将十进制转换为另一种进制
要将十进制数字转换为另一种进制,请反复用目标进制除它,并保留每次的余数。直到数字变为 0 时停止,然后从最后得到的余数开始倒序读取,直到第一个余数。
示例: 将十进制 26 转换为 5进制。
- 26 ÷ 5 = 5,余数为 1
- 5 ÷ 5 = 1,余数为 0
- 1 ÷ 5 = 0,余数为 1
- 从下到上读取余数:101
这验证了前面的示例:十进制中的 26 等于 5进制中的 101。
计算示例
二进制转十进制: 二进制数字 1101 的转换如下:(1×2³) + (1×2²) + (0×2¹) + (1×2⁰) = 8 + 4 + 0 + 1 = 13。
十进制转十六进制: 十进制数字 202 的转换如下:202 ÷ 16 = 12,余数为 10;然后 12 ÷ 16 = 0,余数为 12。在十六进制中,10 写作 A,12 写作 C。从下到上读取余数得到 CA。因此,十进制中的 202 等于十六进制中的 CA。
八进制转二进制: 八进制数字 17 先转换为十进制:(1×8¹) + (7×8⁰) = 15。十进制 15 随后转换为二进制 1111。因此,八进制中的 17 等于二进制中的 1111。
常见进制
| 碱 | 名称 | 使用的数字 | 用途 |
|---|---|---|---|
| 2 | 二进制 | 0–1 | 计算机存储和处理数据 |
| 8 | 八进制 | 0–7 | Unix 和 Linux 文件权限代码 |
| 10 | 十进制 | 0–9 | 日常计数 |
| 16 | 十六进制 | 0–9、A–F | 内存地址、网络上的颜色代码 |
| 36 | 36进制 | 0–9、A–Z | 简短的网络 ID 和紧凑代码 |
超大数字
有些转换涉及标准双精度数学无法精确处理的超大数字,例如 FFFFFFFFFFFFFFFF 这样的 64 位十六进制值。该转换器使用任意精度整数运算处理任意大小的整数,因此不会对较长的数值进行舍入或丢失数字。
转换器接受什么输入
该工具读取由源进制中的数字表示的非负整数。字母可以使用大小写形式输入,因此 ff 和 FF 在 16进制中都表示 255。数字前后的空格会被忽略。任何其他字符(如负号或小数点)都会被拒绝,并显示消息“输入包含对于基数 16 无效的字符”,其中的基数会替换为所设置的源进制。
常见问题
二进制和十六进制有什么区别?
二进制只使用两个数字,即 0 和 1。十六进制使用十六个数字,即从 0 到 9 以及 A 到 F。由于 16 = 2⁴,每个十六进制数字恰好表示四个二进制数字,这就是十六进制常被用作二进制数值简写形式的原因。
如何手动将十进制转换为二进制?
反复用 2 除十进制数字,并记录每次的余数。按照从最后一次除法到第一次除法的顺序倒着读取余数。例如,13 ÷ 2 = 6,余数为 1;6 ÷ 2 = 3,余数为 0;3 ÷ 2 = 1,余数为 1;1 ÷ 2 = 0,余数为 1。从下到上读取可得 1101,它在二进制中表示 13。
该工具支持的最大进制是多少?
该工具支持从 2 到 36 的进制。基数为 36 是仅使用十个数字 0–9 和二十六个字母 A-Z 所能达到的最高进制,因为这样正好有 36 个不同符号。
该工具可以转换负数吗?
不可以。它只接受零和正整数。要转换负数,请先转换其绝对值,然后手动在结果前加上负号。
如果计算机内部使用二进制,为什么还存在十六进制和八进制?
由 1 和 0 组成的长字符串很难让人阅读,也容易数错。由于 16 和 8 都是 2 的幂,十六进制和八进制数字可以分别与固定分组的二进制数字清晰对应:十六进制每组四位,八进制每组三位。这使长二进制数值更短,也更容易用肉眼检查。
该工具能转换的数字大小有限制吗?
没有实际限制。该工具使用任意精度算术,而不是标准浮点数,因此可以转换非常长的数值,包括大于普通计算器能够精确表示的数值,并且不会产生舍入误差。