繁体   English   中英

使用整数运算添加浮点

[英]Floating Point addition using integer operations

我正在编写代码来枚举C ++中的浮点加法,使用整数加法和移位来完成一些功课。 我用Google搜索了主题,我可以通过调整指数然后添加来添加浮点数。 问题是我找不到合适的算法来舍入结果。 现在我正在使用截断。 它显示了0.000倍量级的错误。 但是当我尝试将这个加法器用于像fft这样的复杂计算时,它会显示出巨大的错误。 所以我现在正在寻找的是我的机器用于舍入浮点结果的精确算法。 如果有人可以为此目的发布一些链接会很棒。

提前致谢。

最常见的是,如果要舍去的位表示的值小于要保留的最小位的一半,则它们向下舍入,与截断相同。 如果它们代表超过一半,则它们向上舍入,从而在最小保留位的位置添加一个。 如果它们恰好是一半,则如果最小保留位为零则向下舍入,如果该位为1则向上舍入。 这被称为“圆到最近,与偶数相关”。

这假设你已经完成了所有的比特,在算术的过程中还没有丢失。 如果不能保留所有位,则有一些技术可以跟踪有关它们的足够信息以进行正确的舍入,例如保持三位称为保护位,圆位和粘滞位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM