我们曾经指出为了便于二进制数和十进制数的转换,也为了在书写时更加简便易读,二进制数经常要转换成8进制数和16进制数。这里我们考查2进制数和8进制数之间的转换关系。
设有一个9位二进制数(k8k7k6k5k4k3k2k1k02,根据数制的定义,我们知道:
k8k7k6k5k4k3k2k1k02k8×28k7×27k6×26k5×25k4×24k3×23k2×22k1×21k0×20                                                    (2-16)
216可以进一步写成:
k8×28k7×27k6×26k5×25k4×24k3×23k2×22k1×21k0×20
=(k8×22k7×21k6×20×26+(k5×22k4×21k3×20×23k2×22k1×21k0×20
=(k8×22k7×21k6×20×82+(k5×22k4×21k3×20×81+(k2×22k1×21k0×20×80                                            (2-17)
上面的式子中,k8×22k7×21k6×20相当于(k8 k7 k6)2,假定其等于十进制数h2k5×22k4×21k3×20相当于(k5 k4 k3)2,假定其等于十进制数h1k2×22k1×21k0×20相当于(k2 k1 k0)2,假定其等于十进制数h0。则式217可以改写为:
h2×82h1×81h0×80                                (2-18)
由于h2 h1 h0是三位二进制数的值,因此,其值的范围在07之间。根据数制的定义,我们惊奇地发现式218相当于(h2 h1 h08。这就是说:
k8k7k6k5k4k3k2k1k02=(h二进制与十六进制之间的转换2 h1 h08                        (2-19)
这里,h2(k8k7k6)2h1(k5k4k3)2h0(k2 k1 k0)2
这就是说,我们只要把一个九位的二进数从低位开始三位一组,分成三组,将这三组二进制数分别转换成10进制数,所得的三个数就是该二进制数所对应的8进制数的码。这种关系可以一直往高位推导,即不管二进制数有多少位我们都可以用这种方法把它转换成一个8进制数。
26:将二进制数(101110010102转换为8进制数。
解:将二进制数三位一组分组,计算每组的值如下:
1
0
1
1
1
0
0
1
0
1
0
2
7
1
2
则:(101110010102 =(27128
需要注意的是,整数的分组是从最低位开始,向最高位延伸。如果最高位的组不足三位,则在前面补0。另外,这种转换同样适用于小数的转换。小数的分组,是从最高小数位开始,向低位延伸。如果最低位的组不足3位,在后面补0
27:将二进制数10111001010.101012转换为8进制数。
解:将二进制数三位一组分组,计算每组的值如下:
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
2
7
1
2
5
2
则:10111001010.101012 =(2712.528
仿照2进制转8进制数的推导方法,我们不难得到二进制数与16进制数的转换方法(有关演算留作习题,这里从略)。具体来说就是,将二进制数的整数和小数部分每四位分成一组。整数部分从最低位向最高位顺序分组,如果最高位组不够4位,就在前面补0;小数部分从最高位向最低位顺序分组,如果最低位组不够4位,在后面补0。求出每一组4位二进制数的十进制值(在015之间),然后用16进制符号表示,就得到了相应的16进制数。
28:将二进制数10111001010.101012转换为16进制数。
解:将上述二进制数四位一组分组,计算每组的值如下:
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
5
12
10
10
8
则:10111001010.101012 =(5CA.A816
上面将二进制数转换为8进制数和16进制数的规则,反过来也可以用来将8进制和16进制数转
换为2进制数。请看下面的例子。
29:将8进制数567.728转换为2进制数。
解:将上述八进制数的每一位分解成一个3位二进制数,最后得到就是该8进制数对应的二进制数。具体计算如下:
5
6
7
.
7
2
1
0
1
1
1
0
1
1
1
.
1
1
1
0
1
0
则:567.728=(101110111.1110102
210:将16进制数9F.B616转换为2进制数。
解:将上述16进制数的每一位分解成一个4位二进制数,最后得到就是该16进制数对应的二进制数。具体计算如下:
9
F
.
B
6
1
0
0
1
1
1
1
1
.
1
0
1
1
0
1
1
0
则:9F.B616=(10011111.10110112
现在,作为练习,请检验例21到例25中同一个十进制数的2进制与8进制、16进制之间的对应关系是否符合上面的转换规律。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。