1
dndx 2014-02-26 15:00:27 +08:00
在操作数过大的情况下,溢出是无法避免的,不过 CPU 可以检测溢出并且设置溢出位(x86 实现),程序可以检测溢出位得知运算是否溢出。
参考:https://en.wikipedia.org/wiki/Overflow_flag 至于 ALU 如何检测 Overflow,公式非常简单: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Comb/overflow.html |
2
Mutoo 2014-02-26 16:35:52 +08:00
要避免溢出,就不能直接使用原生的运算,科研和金融机构通常使用复杂度更高的高精度计算,但更可靠:http://zh.wikipedia.org/zh-cn/%E9%AB%98%E7%B2%BE%E5%BA%A6%E8%AE%A1%E7%AE%97
|