发布网友
共2个回答
热心网友
方法:
1、乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到指定位数的小数部分 。
2.余下的值为零即止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数。
下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 。
分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25。
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5。
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0。
第四步,读数,从第一位“整数部分”读起,读到最后一位,即为0.001。
热心网友
举例说明:
2013.5673D=?B
整数部分2013
写出二进制各位基数,个位1,高位是低位乘以2,写到比2013大为止
2048 1024 512 256 128 32 16 8 4 2 1用这组数从高到低将2013凑出来2013=1024+9=1024+512+477=1024+512+256+221=1024+512+256+128+93=1024+512+256+128++29=1024+512+256+128++16+13=1024+512+256+128++16+8+4+1,请结合上边两行的式子,得到解释:2013中有一个1024,1个512,1个128,1个,1个16,1个8,1个4和1个1,二进制就是用这样的方法来计数的(其他进制也是如此)
2013D=011111011101B
取小数部分0.5673乘以2=1.1346,截取整数部分当成二进制小数第1位[011111011101.1]
取上步结果小数部分乘以2=0.1346*2=0.2692[011111011101.10]
继续:0.2692*2=0.5384[011111011101.100],0.5384*2=1.0768[011111011101.1001]
可以一直算下去,直到小数部分为0或者达到要转换的位数为止,这里假定只计算到小数点后4位
2013.5673D=011111011101.1001B
其他进制也是如此转换,n进制基数:个位1,高位=低位*n