计算机浮点怎么解决,计算机如何进行浮点运算?

DigitalRoss..

17

问题是浮点格式表示基数2中的分数.

第一个分数位是½,第二个分数是1/4,它继续为1/2 n.

和这个问题即是,并非每一个有理数(可以表示成两个整数之比的数)实际上具有在该基部2格式的有限表示.

(这使得浮点格式难以用于货币值.虽然这些值总是有理数(n/100),但只有.00,.25,.50和.75实际上具有任意数字位数的精确表示.基础两部分.)

无论如何,当你添加它们时,系统最终有机会将结果四舍五入到它可以准确表示的数字.

在某些时候,它发现自己将.666 ...数字添加到.333 ...中,就像这样:

00111110 1 .o10101010 10101010 10101011

+ 00111111 0 .10101010 10101010 10101011o

------------------------------------------

00111111 1 (1).0000000 00000000 0000000x # the x isn't in the final result

最左边的位是符号,接下来的8位是指数,剩下的位是分数.在指数和分数之间是一个假定的"1",它始终存在,因此实际上不存储,作为归一化的最左边分数位.我写的零实际上不是单独的位o.

这里发生了很多事情,每一步,FPU采取了相当英勇的措施来围绕结果.已经保留了两个额外的精度数字(超出了结果中适合的数字),并且FPU在许多情况下知道剩下的最右边位中的任何一个或至少一个是否为1.如果是这样,则该部分的那部分超过0.5(缩放),因此它向上舍入.中间舍入值允许FPU将最右边的位一直传送到整数部分,最后舍入到正确的答案.

这没有发生,因为任何人都增加了0.5; FPU在格式的限制范围内尽力而为.实际上,浮点不是不准确的.这是完全准确的,但我们期望在我们的基数10,有理数世界观中看到的大多数数字不能用格式的基数2分数来表示.事实上,很少有人.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值