十进制数转换成其他进制数的整数转换,采用基数连除法。把十进制整数 N 转换成R进制数的步骤如下:
1)将 N 除以R,记下所得的商和余数。
2)将上一步所得的商再除以R,记下所得商和余数。
3)重复做第2)步,直到商为0。
4)将各个余数转换成R进制的数码,并按照和运算过程相反的顺序把各个余数排列起来,即为R进制的数。
十进制小数转换成其他进制小数时,采用基数连乘法。把十进制小数 m 转换成R进制数的步骤如下:
1)将 m 乘以R,记下所得的积,取出积的整数部分,小数部分待用。
2)将上一步所得的小数值再乘以R,取出所得积的整数部分,小数部分待用。重复该过程直到积的小数部分为0,或达到有要求的准确度为止。
3)按照运算过程的顺序把各步骤中的整数排列在小数点后,即为R进制的小数。
例1.2.1介绍了二进制数转换为十进制数的方法。十进制数转换为二进制数时,整数部分和小数部分的方法不同,下面分别介绍。
1.十进制数的整数部分转换为二进制数的方法
将十进制数整数每除以一次2,就可以根据余数得到二进制的1位数字,因此,只要连续除以2直到商为0。
例1.2.2 将十进制数37转换为二进制数。
解 :将十进制数37每除以一次2,得到的余数和商如图1.2.1所示。
由上可得:(37) 10 =(100101) 2
当十进制数较大时,不需要逐次除以2,而是将十进制数和与其相当的2乘幂项对比,使转换过程简化。
2.十进制数的小数部分转换为二进制数的方法
将十进制小数乘以2,可以得到2 -1 的系数 b -1 ,将十进制小数每次除去上次所得积中的整数,再乘以2,直到满足误差要求继续“四舍五入”为止。
例1.2.3 将十进制数小数0.706转换为二进制数,要求其误差不大于2 -10 。
解 :按上面的方法计算,可得 b -1 、 b -2 、 b -3 、…、 b -9 ,如图1.2.2所示。
图1.2.1 十进制数37转换为二进制数
图1.2.2 十进制数小数0.706转换为二进制数
由于最后的小数小于0.5,根据“四舍五入”的原则, b -10 应为0,所以由上可得:(0.706) 10 =(0.101101001) 2 ,其误差小于2 -10 。