读书时,在课本上学到的十进制转二进制都是通过除2取余来计算的。最近在一个哈佛视频教材上看到了一种通过进位表的计算方式。或许以前的课本也有提及到,但由于没有哈佛视频中那种生动有趣的示例,都忘记了。
以下记录的是自己看完视频后对进位表的理解。同样的方式适用于8进制和16进制(前提是知道进位表)。
二进制的进位表:
128 |
64 |
32 |
16 |
|
8 |
4 |
2 |
1 |
通过进位表,可以轻易地在十进制和二进制之间进行转换。
E.G:
D10: 249 => D2:
说明:249<256,所以128进位上有1
249 - 128 = 121 > 64,所以64进位上有1
121 - 64 = 57 > 32,所以32进位上有1
57 - 32 = 25 > 16,所以16进位上有1
25 - 16 = 9 > 8,所以8进位上有1
9 - 8 = 1 < 4
< 2 余1 所以1进位上有1
合起来的二进制数为:1111 1001
D2:1111 1001 => D10:
说明:现在把算出来的1111 10001进行反推,算出该数的十进制数:
1进位上有1 |
1 |
* 1 |
1 |
2进位上有0 |
0 |
* 2 |
0 |
4进位上有0 |
0 |
* 4 |
0 |
8进位上有1 |
1 |
* 8 |
8 |
16进位上有1 |
1 |
* 16 |
16 |
32进位上有1 |
1 |
* 32 |
32 |
64进位上有1 |
1 |
* 64 |
64 |
128进位上有1 |
1 |
* 128 |
128 |
|
|
+ |
|
|
|
= |
249 |
算出结果刚好等于原先十进制值。