要把十进制数转换成二进制,就不断除以 22,记录每一步的余数,再从下往上读取这些余数。对于非负整数,这是标准的手算方法;之所以可行,是因为二进制使用的是 22 的幂,而不是 1010 的幂。

如果你在搜索十进制转二进制转换器,这就是你需要掌握的核心思路。每一位二进制数字都表示某个 22 的幂是否被包含:11 表示包含,00 表示不包含。

例如,二进制数 1011012101101_2 表示

125+024+123+122+021+1201 \cdot 2^5 + 0 \cdot 2^4 + 1 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0

它等于

32+0+8+4+0+1=4532 + 0 + 8 + 4 + 0 + 1 = 45

所以,十进制转二进制本质上就是把一个数改写成若干个 22 的幂之和。

为什么十进制转二进制可行

在十进制中,各位依次是 11101010010010001000,依此类推。在二进制中,各位是

1, 2, 4, 8, 16, 32, 64,1,\ 2,\ 4,\ 8,\ 16,\ 32,\ 64,\dots

因为二进制只有两个数字,所以每一位只能是 001111 表示这个 22 的幂被包含,00 表示不包含。

这也是为什么二进制天然适合数字系统:每一位只有两种状态。

如何把 4545 从十进制转换成二进制

对于非负整数,标准方法是反复除以 22

4545 开始:

45÷2=22 余 145 \div 2 = 22 \text{ 余 } 1 22÷2=11 余 022 \div 2 = 11 \text{ 余 } 0 11÷2=5 余 111 \div 2 = 5 \text{ 余 } 1 5÷2=2 余 15 \div 2 = 2 \text{ 余 } 1 2÷2=1 余 02 \div 2 = 1 \text{ 余 } 0 1÷2=0 余 11 \div 2 = 0 \text{ 余 } 1

现在从下往上读取余数:

101101101101

所以

4510=101101245_{10} = 101101_2

你也可以用位值来验算:

1011012=132+016+18+14+02+11=45101101_2 = 1 \cdot 32 + 0 \cdot 16 + 1 \cdot 8 + 1 \cdot 4 + 0 \cdot 2 + 1 \cdot 1 = 45

快速检查的方法是列出所有标记为 1122 的幂:3232884411。它们的和是 4545,所以这个转换是正确的。

为什么要倒着读余数

每一步除法得到的都是下一个最低有效位,也就是最右边的二进制位。所以第一个余数应该放在最后,而不是最前面。

你也可以通过把 4545 表示成若干个 22 的幂之和来看出同样的结果。能放进去的最大 22 的幂是 3232,还剩下 1313。然后 88 可以放进去,还剩下 55。接着 44 可以放进去,还剩下 11。最后,11 也可以放进去。

于是得到

45=32+8+4+145 = 32 + 8 + 4 + 1

所以,252^5232^3222^2202^0 对应的位是 11,其余位是 00。这样又得到 101101101101

常见错误

从上往下读取余数

使用反复除法时,余数要从下往上读。如果从上往下读,就会得到错误的二进制数。

把整数方法用于小数

上面的除以 22 方法适用于非负整数。如果原来的十进制数有小数部分,那么这个小数部分需要单独使用另一种转换过程。

认为十进制小数在二进制中一定有限结束

并不是这样。例如,有些有限十进制小数在二进制中会变成循环展开。所以如果输入的不是整数,十进制转二进制转换器可能会显示近似结果。

什么时候会用到十进制转二进制

这种转换常见于计算机、数字电子、存储容量以及基于位的逻辑中。即使你在工作中从不手动转换数字,理解这些位代表什么,也能让二进制数不再那么难懂。

在读取掩码、标志位或底层示例时,它也很有用,因为其中每一位通常都表示一个开/关选择。

快速练习

试着用同样的除以 22 过程把 2626 转成二进制。然后把结果展开成 22 的幂来验算。如果你想再进一步,可以把这个整数例子和一个十进制小数进行比较,看看为什么小数部分需要额外处理。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →