6.4 二、十六进制数互相转换

来源:百度知道 编辑:UC知道 时间:2024/07/07 10:21:19
6.4 二、十六进制数互相转换
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。
我们也一样,只要学完这一小节,就能做到。
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数 快速计算方法 十进制值 十六进值

1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
1011 = 8 + 4 + 0 + 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 = 10 9
....
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0

二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

有规律的,如1010 1*(2的3次方) + 0*(2的2次方)+1*(2的1次方)+0*(2的0次方),可以看出从低到高分别是2的0 1 2 3次方。
省略的内容:
1000 = 8 + 0 + 0 + 0 = 8 8
0111 = 0 + 4 + 2 + 1 = 7 7
0110 = 0 + 4 + 2 + 0 = 6 6
0101 = 0 + 4 + 0 + 1 = 5 5
0100 = 0 + 4 + 0 + 0 = 4 4
0011 = 0 + 0 + 2 + 1 = 3 3
0010 = 0 + 0 + 2 + 0 = 2 2