关于十进制小数转二进制是“乘2取整,顺序排列”,请问为什么要这么做?这样做有什么根据? 最好举上例子

如题所述

这么说吧,我先给你举个例子,然后再告诉你为什么。
0.25 二进制得0.01
0.25*2=0.5 取0 0.5*2=1取1 所以是0.01

这是为什么呢,看分数比较容易看出原因
十进制0.25 从十进制方式看,也就是 分数2/10 + 分数5/100
先看十进制 乘10(得2.5)的整数位得2 ,也就是十进制的小数第一位(这里你看到的2,其实是十分之二)
除去整数位,再乘10(得5), 就是小数位第二位(这里你看到的5其实是一百分之五)

十进制0.25 从二进制方式看,也就是 分数0/2 + 分数1/4
再看 乘2(得0.5)的整数位得0 , 也就是二进制的小数第一位(这里你看到的0,其实是二分之零)
除去整数位,再乘2(得1), 就是小数位第二位(这里你看到的1其实是四分之一)

再看
0.25,等于 0/2 + 1/4,即得二进制0.01。
0.75,等于 1/2 + 1/4,即得二进制0.11。
这种方法其实正如十进制7,等于4+2+1,即得二进制111一样。

其实乘二取整,意义就在于,每次乘2,在整数位看到的都是 2的n次方分之一的分子的值,即二进制小数点后第n位的值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-09
二进制与十进制间的相互转换:
(1)二进制转十进制 方法:“按权展开求和” 例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10 =(8+0+2+1+0+0.25)10 =(11.25)10 规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十 分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。 注意:不是任何一个十进制小数都能转换成有限位的二进制数。 (2)十进制转二进制 · 十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法) 例: (89)10 =(1011001)2 2 89 ……1 2 44 ……0 2 22 ……0 2 11 ……1 2 5 ……1 2 2 ……0 1 · 十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法) 例: (0.625)10= (0.101)2 0.625X2=1.25 ……1 0.25 X2=0.50 ……0 0.50 X2=1.00 ……1

八进制与二进制的转换:
二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。 八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。 八进制数字与二进制数字对应关系如下: 000 -> 0 100 -> 4 001 -> 1 101 -> 5 010 -> 2 110 -> 6 011 -> 3 111 -> 7 例:将八进制的37.416转换成二进制数: 3 7 . 4 1 6 011 111 .100 001 110 即:(37.416)8 =(11111.10000111)2 例:将二进制的10110.0011 转换成八进制: 0 1 0 1 1 0 . 0 0 1 1 0 0 2 6 . 1 4 即:(10110.011)2 = (26.14)8
3.十六进制与二进制的转换:
二进制数转换成十六进制数:从小数点开始,整数部分向左、小数部分向右,每4位为一组用一位十六进制数的数字表示,不足4位的要用“0”补足4位,就得到一个十六进制数。 十六进制数转换成二进制数:把每一个十六进制数转换成4位的二进制数,就得到一个二进制数。 十六进制数字与二进制数字的对应关系如下: 0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C 0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D 0010 -> 2 0110 -> 6 1010 -> A 1110 -> E 0011 -> 3 0111 -> 7 1011 -> B 1111 -> F 例:将十六进制数5DF.9 转换成二进制: 5 D F . 9 0101 1101 1111 .1001 即:(5DF.9)16 =(10111011111.1001)2 例:将二进制数1100001.111 转换成十六进制: 0110 0001 . 1110 6 1 . E 即:(1100001.111)2 =(61.E)16