汇编语言十进制小数转换为二进制实数
当十进制小数可以表示为形如 (1/2+1/4+1/8+…) 的分数之和时,发现与之对应的二进制实数就非常容易了。如下表所示,左列中的大多数分数不容易转换为二进制。不过,可以将它们写成第二列的形式。
十进制分数 | 分解为… | 二进制实数 | 十进制分数 | 分解为… | 二进制实数 |
---|---|---|---|---|---|
1/2 | 1/2 | .1 | 3/8 | 1/4+1/8 | .011 |
1/4 | 1/4 | .01 | 1/16 | 1/16 | .0001 |
3/4 | 1/2+1/4 | .11 | 3/16 | 1/8+1/16 | .0011 |
1/8 | 1/8 | .001 | 5/16 | 1/4+1/16 | .0101 |
7/8 | 1/2+1/4+1/8 | .111 |
很多实数,如 1/10(0.1)或 1/100(0.01),不能表示为有限位的二进制数,它们只能近似地表示为一组以 2 的幂为分母的分数之和。想想看,像 $39.95 这样的货币值受到了怎样的影响!
使用二进制长除法
当十进制数比较小的时候,将十进制分数转换为二进制的一个简单方法就是:先将分子与分母转换为二进制,再执行长除。例如,十进制数 0.5 表示为分数就是 5/10,那么十进制 5 等于二进制 0101,十进制 10 等于二进制 1010。执行了长除之后,商为二进制数 0.1:
发表评论