除2取余法的依据
假 定十进制整数为
,等 值 的 二 进 制 数 为
,则 依 公 式
可知
![(S)_{10} = k_{n}2^{n}+k_{n-1}2^{n-1}+...k_{1}2^{1}+k_{0}2^{0} = 2(k_{n}2^{n-1}+k_{n-1}2^{n-2}...k_{1})+k_{0}](https://i-blog.csdnimg.cn/blog_migrate/bb13d78d17b0b18f8dabe9f84f22e7f9.png)
上式表明,若将
除以2,则商为
,而余数即为
。同理,
上式所得商再除以 2,有
即将
除以2得到的商再次除以2,所得余数即为
。
以此类推,反复将每次得到的商再除以 2,就可求得对应二进制的每一位了。
乘2取整法的依据
若
是一个十进制小数,等 值 的 二 进 制 小数 为
,则
![(S)_{10}=k_{-1}2^{-1}+k_{-2}2^{-2}+...+k_{-m}2^{-m}](https://i-blog.csdnimg.cn/blog_migrate/f5f130feb166ca3197325e68c340c854.gif)
两边同乘2得,
![2(S)_{10}=k_{-1}+k_{-2}2^{-1}+...+k_{-m}2^{-m+1}](https://i-blog.csdnimg.cn/blog_migrate/cd57aa12b8ac5ca920d9c7df460cdefc.gif)
即小数
乘以 2 所得的乘积的整数部分就是
,同理,将乘积的小数部
分再乘以 2 可得:
![2(k_{-2}2^{-1}+k_{-3}2^{-2}+...k_{-m}2^{-m+1})=k_{-2}+(k_{-3}2^{-1}+...+k_{-m}2^{-m+2})](https://i-blog.csdnimg.cn/blog_migrate/3e412ae9a90ede3ad7d53568e795d888.png)
亦即其乘积的整数部分就是
。
以此类推,将每次乘2得到的乘积的小数部分再次乘以2,就可求得对应二进制
小数的每一位了。