gpt4 book ai didi

c - 如何事先确定无符号计算是否可能溢出?

转载 作者:太空狗 更新时间:2023-10-29 17:24:31 24 4
gpt4 key购买 nike

作为个人项目,我正在为我的宠物项目实现任意精度数字类型。

我已经知道所有流行的、经过测试的和强大的库都可以执行此操作。我想将解决方案作为 self 提升教育项目。

我正在研究该区域并试图弄清楚是否有某种方法可以在我实际进行计算之前粗略地预测操作是否会导致溢出。我也不太担心误报。

我希望能够使用适合计算的最小空间。如果计算将保持在其本地范围内,我将其保留在那里。

例如:将两个 64 位整数相乘(如果每个都足够大)会导致溢出。可能 超过 64 位分辨率。在这个实验中,我将使用有符号数字。

检测上溢/下溢的最明智、最有效的方法是什么?

最佳答案

只取两个数字中的最高位,左移一位,如果这些数字的结果(例如:乘法)会导致溢出,那么很有可能发生溢出。

虽然它不精确,但速度非常快,并且很好地表明您需要更大的数据类型来获得结果。

这可能只对运算符成本高的大型数据类型有意义,对于简单的事情(即使是 64 位数字),我认为您可以依赖 CPU 的内置算法。请参阅以下问题:Undefined behavior when exceed 64 bits

关于c - 如何事先确定无符号计算是否可能溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com