1.3.2 数制的转换
不同数制的数之间可以进行相互转换。
1.二进制数、八进制数、十六进制数转换成十进制数
采用“按权展开法”。具体做法是,把非十进制数写成加权系数展开式,然后按十进制加法规则求和。这种做法称为“按权展开”法。
(1)二进制数转换成十进制数
【例1-1】把二进制数11011.11转换为十进制数。
(11011.11)2=1×24+1×23+0×22+1×21+1×20+1×2-1+1×2-2=16+8+2+1+0.5+0.25=(27.75)10
(2)八进制数转换为十进制数
【例1-2】把八进制数357.8转换为十进制数。
(357.8)8=3×82+5×81+7×80+8×8-1=192+40+7+0.1=(239.1)10
(3)十六进制数转换为十进制数
【例1-3】把十六进制数3AF.C转换为十进制数。
(3AF.C)16=3×162+10×161+15×160+12×16-1=768+160+15+0.75=(943.75)10
2.十进制数转换为二进制数、八进制数、十六进制数
十进制数转换为二进制数、八进制数、十六进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
(1)十进制整数转换非十进制整数
十进制整数转换为非十进制数,整数部分采用“除基数取余,逆序排列”法。具体做法是:用基数去除十进制整数,可以得到一个商和余数;将余数取出,再用基数去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为非十进制数的低位有效位,后得到的余数作为非进制数的高位有效位,依次排列起来。
【例1-4】把十进制数125转换为二进制数。
(125)10=(1111101)2
【例1-5】把十进制数125转换为八进制数。
【例1-6】把十进制数125转换为十六进制数。
(125)10=(7D)16
(2)十进制小数转换为非十进制小数
十进制小数转换成非十进制小数采用“乘基数取整,顺序排列”法。具体做法是:用其他进制的基数不断乘十进制小数,可以得到积,将积的整数部分取出,再用基数乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为小数的高位有效位,后取的整数作为低位有效位。
【例1-7】把十进制数0.125转换为二进制数。
转换结果为:(0.125)10=(0.001)2
【例1-8】把十进制数0.325转换为八进制数。
取有效位3位。
转换结果为:(0.325)10≈(0.246)2
3.二进制数与八进制数、十六进制数之间的转换
(1)二进制数与八进制数的转换
二进制数与八进制数的相互转换,以小数点为分界线,按照每3位二进制数对应于一位八进制数进行转换。
(2)二进制数与十六进制数的转换
二进制数与十六进制数的相互转换,按照每4位二进制数对应于一位十六进制数进行转换。
4.二进制数、八进制数、十进制数、十六进制数的对应关系
为了方便记忆,我们把二进制数、八进制数、十进制数和十六进制数的关系用表1-1描述。借助于该表,可以快速进行二进制数、八进制数、十六进制数之间的相互转换。
表1-1 二进制数、八进制数、十进制数、十六进制数之间的对应关系
【例1-9】二进制数11101.01转换为十六进制数。
以小数点为分界线,向左向右每4位一组,不足4位补零。即补成如下形式:
0001 1101.0100
1 D. 4
(11101.01)2=(1D.4)16
【例1-10】十六进制数转为二进制数。
(AF4.76)16=(1010 1111 0100. 0111 0110)2