1.3.2 数制转换
将二进制数和十六进制数转换为十进制数只需要将它们按权展开相加即可,下面介绍十进制数如何转换为二进制数和十六进制数;二进制数与十六进制数之间的互相转换。
1.十进制数转换为二进制数
对于十进制整数,采用除2取余法,即将十进制整数除以2,得到一个商数和余数,再将商数除以2又得到一个商数和余数,如此继续下去,直至除尽为止。以最后所得的商数“1”为最高位,将各次所得的余数按“后得先排”的顺序写下来,即得二进制转换结果。
【例1-4】将十进制整数79转换为二进制数。
转换过程如表1-1所示。
表1-1 十进制数整数部分转换为二进制数
可见转换结果为:79=1001111B
对于十进制小数部分,采用乘2取整法,即将十进制纯小数乘以2,摘除乘积中的整数后保留小数部分再乘以2,如此继续下去,直至乘积小数部分为零或者得到要求的精度为止。将各次摘取的整数依先后顺序写出来,即为转换的二进制纯小数结果。
【例1-5】将十进制小数0.1875转换为二进制数。
转换过程如表1-2所示。
表1-2 十进制数小数部分转换为二进制数
可见转换结果为:0.187 5=0.0011B
2.十六进制数与二进制数之间的转换
(1)二进制数转换为十六进制数
由于1位十六进制数实际上是4位二进制数,所以,两者之间的转换较容易。将二进制数转换成十六进制数时,以小数点为界,整数部分从右到左每4位用对应的一位十六进制数表示,最高位部分不足4位时左边补0;而小数部分则从左到右每4位用对应的一位十六进制数表示,最低位部分不足4位时在右边补0。
【例1-6】将二进制数10110110100011.011011B转换为十六进制数。
注意
不要将十六进制数小数最后一位“C”写成“3”。
由此可见,引入十六进制数的主要目的是,避免书写与阅读一长串二进制数码的麻烦且容易出错的弊端,计算机本身并不需要做转换运算。
(2)十六进制数转换为二进制数
如果要将十六进制数转换为二进制数,只需要将十六进制数的每一位用对应的4位二进制数表示并依原顺序排列即可。
【例1-7】将十六进制数3 F82.E2 H转换为二进制数。
3.十进制数转换为十六进制数
十进制数转换为十六进制数有两种方法,如下。
(1)先将十进制数转换为二进制数,再将二进制数表示为十六进制数。
(2)将十进制数直接转换为十六进制数,转换过程类似上述十进制数转换成二进制数的方法。
对于十进制整数,采用除16取余法,即将十进制整数除以16,得到一个商数和余数,再将商数除以16又得到一个商数和余数,如此继续除下去直至除尽为止。以最后所得的余数为最高位,将各次所得的余数按“后得先排”的顺序写下来,即得十六进制转换结果。
【例1-8】将十进制整数35 243转换为十六进制数。
转换过程如表1-3所示。
表1-3 十进制数整数部分转换为十六进制数
可见转换结果为:35 243=89ABH
对于十进制小数部分,采用乘16取整法,即将十进制纯小数乘以16,摘除乘积中的整数后保留小数部分再乘以16,如此继续下去,直至乘积小数部分为零或者得到要求的精度为止。将各次摘取的整数依先后顺序写出来,即为转换的十六进制纯小数结果。
【例1-9】将十进制小数0.781 25转换为十六进制数。
转换过程如表1-4所示。
表1-4 十进制数小数部分转换为十六进制数
可见转换结果为:0.781 25=0.C8H