比如说5.6
整数部分5用2进制为101
小数部分0.6
有这样一个公式: *2 如果<1就为0,基数=基数;大于1,就为1,基数=基数-1
0.6*2=1.2>0 那么就为1 基数=1.2-1=0.2
0.2*2=0.4<0 那么就为0,基数=0.4
0.4*2=0.8<0,那么就为0,基数=0.8
0.8*2=1.6>0 那么就为1,基数为1.6-1=0.6
:
:
:
:
所以5.6可以表示为:101.1001
想往下面再乘,就更精确了
可以这样:首先将一个小数如:235.725的小数部分取出,即:0.725,将其乘以进制数二进制就乘以2后得到1。45,取其整数部分1为二进制小数的第一项(十分位),在将小数部分0。45乘2得0。9,取其整数部分为二进制小数的第二位(百分位)0,在将其小数部分0。9乘2,得1。8,取其整数部分为二进制小数的第三位(千分位)1,取其小数部分0。8再乘2……以此类推,直到值为0或形成循环小数则停止。
乘基数取整法,如
0.11先0.11*2,得0.22取整数部分0作为小数的十分位,再0.22*2,得0.44,取整数0作为小数的百分位,一直重复上述步骤,直到你所需的精度
这样计算:
0.11X2=0.22
取0
0.22X2=0.44
取0
0.44X2=0.88
取0
0.88X2=1.76
取1
0.76
X2=1.52
取1
0.52X2=1.04
取1
0.04X2=0.08
取0
0.08
X2=0.16
取0
0.16
X2=0.32
取0
0.32
X2=0.64
取0
0.64
X2=1.28
取1
0.28
X2=0.56
取0
0.56
X2=1.12
取1
0.12X2=0.24
取0
0.24X2=0.48
取0
0.48X2=0.96
取0
0.96X2=1.92
取1
0.92X2=1.84
取1
.....
算得我快崩溃了,直到值为0或形成循环小数则停。就把取的哪些合起来,就是二进制表示了,好难算。最后结果是:0000.XXXX
XXXX的样式。
比如说5.6
整数部分5用2进制为101
小数部分0.6
有这样一个公式:
*2
如果<1就为0,基数=基数;大于1,就为1,基数=基数-1
0.6*2=1.2>0
那么就为1
基数=1.2-1=0.2
0.2*2=0.4<0
那么就为0,基数=0.4
0.4*2=0.8<0,那么就为0,基数=0.8
0.8*2=1.6>0
那么就为1,基数为1.6-1=0.6
:
:
:
:
所以5.6可以表示为:101.1001
想往下面再乘,就更精确了