新编计算机导论(基于计算思维)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.3 二、八、十六、十进制数相互转换

1.十进制数与二进制数相互转换

(1)二进制数→十进制数

将二进制数按权展开,即用位权表示法展开,而后进行相加。

【例2.5】 将二进制数101011转换为十进制数。

(101011)2=25+23+21+20=32+8+2+1=43

所以,(101011)2=(43)10

(2)十进制数→二进制数

整数部分:除基(2)取余法,直到商为0,然后将余数倒排即可。

小数部分:乘基(2)取整法,直到乘积的小数部分为0,或小数点后的位数达到了所需的精度,然后将积的整数部分顺排即可。

【例2.6】 将十进制数108.625转换为二进制数。

所以,(108.625)10 = (1101100.101)2

2.二进制数与八、十六进制数相互转换

因为23=8,24=16,所以二进制数可以直接对应它的八进制数和十六进制数。

(1)二进制数转换为八、十六进制数

① 二进制数→八进制数:

以小数点为基准,

整数部分:从右向左,每3位为一组,最左边不足3位时,左边添0补足3位;

小数部分:从左向右,每3位为一组,最右边不足3位时,右边添0补足3位。

然后将每组中的3位二进制数用1位八进制表示,依序排列即可得到对应的八进制数。

【例2.7】 将二进制数10101001100.1101转换为八进制数。

10101001100.1101 =010 101 001 100.110 100

= 2514.64

所以,(10101001100.1101)2=(2514 .64)8

② 二进制数→十六进制数:

以小数点为基准,

整数部分:从右向左,每4位为一组,最左边不足4位时,左边添0补足4位;

小数部分:从左向右,每4位为一组,最右边不足4位时,右边添0补足4位。

然后将每组中的4位二进制数用1位十六进制表示,依序排列即可得到对应的十六进制数。

【例2.8】 将二进制数10101001100.1101转换为十六进制数。

10101001100.1101 = 0101 0100 1100.1101

= 54 C.D

所以,(10101001100.1101)2=(54C.D)16

(2)八、十六进制数转换为二进制数

① 八进制数→二进制数:

将每位数码用3位二进制数码替换,然后依序排列即可。

② 十六进制数→二进制数:

将每位数码用4位二进制数码替换,然后依序排列即可。

【例2.9】 将八进制数154.42转换为二进制数,将十六进制数D31.2C转换为二进制数。

(154.42) 8 =(001 101 100.100 010)2

=(1101100.10001)2

(D31.2C)16 =(1101 0011 0001.0010 1100)2

=(110100110001.001011)2

提示:整数部分最前面的0和小数部分最后面的0均可以省略。