OTHERS 三月 21, 2021

十进制整数与二进制数转换

文章字数 8.7k 阅读约需 8 mins. 阅读次数

因为人类有十根手指,所以十进制计数法,是目前使用范围最广泛的计数方式。

但在计算机中,只有 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 = 1212 = 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

其他进制

除了十进制和二进制之外,还有八进制、十六进制、二十进制等计数方法,均可通过上述方式进行转换。

参考资料

0%