十进制小数转化为二进制小数的方法:对十进制小数乘以2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分,结果再取整数部分,如此反复,直到小数部分为0或达到精度为止。第一次得到的为最高位,最后一次得到为最低位。
如计算+0.52的二进制:
1、0.52*2=1.04 (取整得到1)
2、0.04*2=0.08 (取整得到0)
3、0.08*2=0.16 (取整得到0)
4、0.16*2=0.32 (取整得到0)
5、0.32*2=0.64 (取整得到0)
6、0.64*2=1.28 (取整得到1)
7、0.28*2=0.56 (取整得到0)
……
如果取机器字长为8情况下,则+0.52的二进制就是01000010;如果是32位的话,那就需要多算一会了
对于小于-1的小数,需要拆分成整数部分和小数部分,整数采用除基数再倒取余数法。小数如上所述,以-6.25为例:
a、整数部分为6:
1、6/2=3 (取余数0)
2、3/2=1 (取余数1)
3、1/2=0 (取余数为1)
那么整数6的二进制就是110
b、小数部分为0.25
1、0.25*2=0.5 (取整数0)
2、0.5*2=1.0 (取整数1)
所以小数部分0.25二进制就是01。(这里是不带符号位的6.25二进制表示)即:
-6.25就是前面加小数位,即:
http://www.cnblogs.com/walkingp/archive/2011/03/06/1971825.html
软件设计师考试笔记一:原码、反码、补码及移码,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/yswordbop/p/3714204.html