本节将介绍正数码制转换,包括将十进制正整数转换成其他进制数,以及将十进制正小数转换成二进制正小数。
本节将介绍十进制正整数转换成二进制数和十六进制数的方法。
1)长除法
采用长除法,除数始终为2,将十进制进行分解,直到商为0结束。然后按顺序将最后得到的余数作为二进制数的最高有效位,而最先得到的余数作为二进制数的最低有效位。
【例4-1】 使用长除法将十进制正整数59转换成所对应的二进制数。
59÷2=29…1
29÷2=14…1
14÷2=7…0
7÷2= 3…1
3÷2= 1…1
1÷2= 0…1
注:“…”前面的数字表示商,“…”后面表示的数字为余数。
根据上面介绍的转换规则,十进制正整数59所对应的二进制数为111011。
2)比较法
让需要转换的十进制正整数和不同的二进制权值进行比较。当:
(1)如果需要转换的十进制正整数大于所对应的二进制权值时,得到1,并且将转换的十进制正整数减去所对应的二进制权值后得到余数,然后再用得到的余数与下一个所对应二进制权值进行比较;
(2)如果需要转换的正整数小于所对应的二进制权值时,得到0,并且不做任何处理。
【例4-2】 使用比较法将十进制整数59转换成所对应的二进制数。
通过比较法,如表4.2所示,得到十进制正整数59所对应的二进制数为111011。
表4.2 比较法将十进制正整数59转化为二进制数
从以上两种方法可以看出,比较法比长除法更容易理解,并且显著降低了运算量。很明显,只要比较的权值变化,就可以得到十进制转其他进制的计算方法。
1)长除法
采用长除法,除数始终为16,将十进制进行分解,直到商为0结束。然后按顺序将最后得到的余数作为十六进制数的最高位,而最先得到的余数作为十六进制数的最低位。
【例4-3】 使用长除法将十进制正整数4877转换成所对应的十六进制数。
4877÷16=304…13(D)
304÷16=19…0
19÷16=1…3
1÷16=0…1
注:“…”前面的数字表示商,“…”后面表示的数字为余数。
所以,十进制正整数4877所对应的十六进制数为130D。
2)比较法
让需要转换的十进制正整数和不同的十六进制权值进行比较。当:
(1)需要转换的十进制正整数大于所对应的十六进制权值时,得到商,并且将转换的十进制正整数减去十六进制权值和对应的十六进制商的乘积得到十进制余数,然后再用得到的余数与下所对应的十六进制权值进行比较。
(2)需要转换的十进制正整数小于所对应的十六进制权值时,得到0,并且不做任何处理。
【例4-4】 使用比较法将十进制正整数4877转换成所对应的十六进制数。
通过比较法,如表4.3所示,得到十进制正整数4877所对应的十六进制数为130D。
表4.3 比较法将十进制正整数4877转化为十六进制数
1)长乘法
将小数乘以2,取其整数部分的结果,然后再用计算后的小数部分依此重复计算,直到小数部分全为0为止。在读取整数部分的结果时,最先得到的整数作为二进制正小数的最高有效位,而最后得到的整数作为二进制正小数的最低有效位。
【例4-5】 使用长乘法将一个十进制正小数0.8125转换成所对应的二进制正小数。
0.8125×2=1.625 取整是1
0.625×2=1.25 取整是1
0.25×2=0.5 取整是0
0.5×2=1.0 取整是1
即十进制正小数0.8125所对应的二进制正小数为0.1101。
2)比较法
让需要转换的数和不同的二进制权值进行比较,当:
(1)需要转换的小数大于所对应的二进制权值时,得到1,并且转换的小数减去二进制权值得到余数,然后再用得到的余数与下一个二进制权值进行比较。
(2)需要转换的数小于所对应的二进制权值时,得到0,并且不做任何处理。
【例4-6】 使用比较法将一个十进制正小数0.8125转换成所对应的二进制正小数。
通过比较法,如表 4.4所示,得到十进制正小数 0.8125所对应的二进制正小数为0.1101。
表4.4 比较法将十进制正小数0.812转化为二进制正小数
思考与练习4-1:完成下面十进制正整数的转换(使用最少的位数)。
(1)(35) 10 =(_______) 2 =(_______) 16 =(_______) 8
(2)(213) 10 =(_______) 2 =(_______) 16 =(_______) 8
(3)(1034) 10 =(_______) 2 =(_______) 16 =(_______) 8
思考与练习4-2:完成十进制正小数的转换(使用最少的位数)。
(1)(13.076) 10 =(_______) 2
(2)(247.0678) 10 =(_______) 2