1
新编大学计算机基础
1.3.4.2 1.4.2 各种数制的转化

1.4.2 各种数制的转化

1.其他数制转换为十进制

可以采用加权系数和的方法将其他进制转化成十进制。

例:将数(101.01)2,(257)8,(32CF.4)16转化成十进制。

(101.01)2=1×22+0×21+1×20+0×2-1+1×2-2=(5.25)10

(257)8=2×82+5×81+7×80=(175)10

(32CF.4)16=3×163+2×162+12×161+15×160+4×16-1=(13007.25)10

2.十进制转其他数制

一般对整数常用除基数取余法,而对小数采用乘基数取整法。

例:将(217)10转化成二进制。

转化成二进制基数为二,故除二取余。

img10

故 (217)10=(11011001)2

例:将(2.6875)10转换成二进制数。

先将整数2转换为二进制数,方法为除二取余法。结果为(10)2

小数部分(0.6875)10用乘二取整法。

img11

将整数和小数合并在一起(2.6875)10=(10.1011)2

应该指出,把十进制小数转换成二进制小数时,乘二取整的过程可能是无限的,这就需要根据精度选取适当的位数,转换前后可能不完全等值,如将(0.7)10转换成二进制。

通过上例我们还可以看出,对同一数,用二进制表示位数较多,而用八进制和十六进制则简单得多,因此程序人员往往用八进制或十六进制来书写程序。二进制、八进制、十六进制之间有简单的转换关系。

3.二进制、八进制的相互转换

八进制数的一位数相当于二进制数的三位数,因此从八进制数转换成二进制数,只需以小数点为界,整数向左(小数向右),每位八进制数用相应的三位二进制数取代,即可分别转换成二进制的整数和小数。无论是向左还是向右,最后不足三位二进制数时都用零补足三位。

例:如把(702.521)8转换为二进制数:

img12

同理,把二进制数转换成相应的八进制数只是上述方法的逆过程。

4.二进制、十六进制的相互转换

由于十六进制数的一位数相当于二进制数的四位数,因此从十六进制数转换成二进制数,只需以小数点为界,整数部分向左(小数部分向右),每位十六进制数用相应的四位二进制数取代,即可由十六进制数转换成二进制数。无论是向左还是向右,最后不足四位二进制数时都需要用零补足四位。

例:如把(3D7.A6)16转换成二进制数:

img13

反之可以把(1111010111.10100110)2转换成十六进制数。

八进制与十六进制之间无直接转化关系,必须通过其他进制转化。