十进制前一位的1表示的数值比后一位的1表示的数值大10倍。
二进制前一位的1表示的数值比后一位的1表示的数值大2倍。
十进制的小数0.628可以这样拆解:
0.628÷0.1=0.628÷(1/10)=0.628*10=6.28
即0.628÷0.1=0.628*10=6.28,意思是0.628包含6.28个0.1,所以小数点后第1位的数值就是6
剩下的0.28个0.1表示的数值即0.28*0.1,就由小数点后第1位以后的数表示
0.28*0.1÷0.01=0.28*10=2.8,剩下的数包含2.8个0.01,所以小数点后第2位的数值就是2
0.8*0.01÷0.001=0.8*10=8,再剩下的数刚好包含8个0.001,所以小数点后第3位的数的数值是8,到此0.628不剩下未表示的部分。
下面依照这个方式把0.628转成二进制:
二进制小数小数点后第1位的最小值是1÷2(前1位最小值是后1位最小值的2倍)
二进制小数小数点后第2位的最小值是1÷2÷2
二进制小数小数点后第3位的最小值是1÷2÷2÷2
0.628÷(1÷2)=0.628*2=1.256,0.628包含1.256个(1÷2),所以小数点后第1位是1,剩下0.256个(1÷2)未表示
0.256*(1÷2)÷(1÷2÷2)=0.256*2=0.512,剩下的数包含0.512个(1÷2÷2),所以小数点后第2位是0
依据规律,小数点后第3位求法就是0.512*2=1.024,取小数点前的数,这里还剩下了0.024个(1÷2÷2÷2)没有用二进制数表示。当然,如果你愿意,可以继续下去0.024*2=0.048,取0。直到0.628这是数不剩下未表示出来的部分(大多数时候是不可能的)
所以0.628转二进制就是为0.10100……