因为人类有十根手指,所以十进制计数法,是目前使用范围最广泛的计数方式。
但在计算机中,只有 0 和 1 两个数,所以需要进行转换。
本文主要介绍一下十进制 整数 与二进制数的转换方法。
十进制转二进制
方法一
十进制整数转二进制时,可将十进制整数除以 2(因为需转换为二进制数),得到余数,填入二进制低位,直至商为 0 时结束。
以 156 为例:
| 除数 | 被除数 | 余数 |
|---|---|---|
| 2 | 156 | 0 |
| 78 |
将余数 0 填入二进制数的低位
| - | - | - | - | - | - | - | 0 |
商不为 0,继续计算:
| 除数 | 被除数 | 余数 |
|---|---|---|
| 2 | 156 | 0 |
| 2 | 78 | 0 |
| 39 |
将余数 0 填入二进制数的低位
| - | - | - | - | - | - | 0 | 0 |
继续运算至商为 0 时终止:
| 除数 | 被除数 | 余数 |
|---|---|---|
| 2 | 156 | 0 |
| 2 | 78 | 0 |
| 2 | 39 | 1 |
| 2 | 19 | 1 |
| 2 | 9 | 1 |
| 2 | 4 | 0 |
| 2 | 2 | 0 |
| 2 | 1 | 1 |
| 0 |
得到二进制表示为:
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
方法二
用十进制整数减 2 的指数(因为是要转换为二进制),直至减为 0 结束。
仍然以 156 为例,先将 2 的指数列出来:
| 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
156 减 2 的 7 次方(128)得 28,故在二进制数的第八位(从右往左数,第一位对应 2^0,第二位对应 2^1),填入 1(因为只能减掉一个 2^7)。
| 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| - | - | 1 | - | - | - | - | - | - | - |
156 - 128 = 28,28 只能减掉一个 16(2^4),故在第五位填入 1,中间第六第七位补 0 。
| 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| - | - | 1 | 0 | 0 | 1 | - | - | - | - |
28 - 16 = 12,12 = 2^3 + 2^2,故在第四位及第三位填 1,其余低位补 0 。
| 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| - | - | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
二进制转十进制
二进制转十进制时,只需取出每位乘以对应的 2 的指数,并求和。
如 10011100 转十进制时的计算方式为:
1 * 2^7 + 0 * 2^6 + 0 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0 = 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156
其他进制
除了十进制和二进制之外,还有八进制、十六进制、二十进制等计数方法,均可通过上述方式进行转换。