在我当前的 32 位应用程序中,我(偶尔)通过对 64 位整数进行运算来检查溢出。
然而,在 64 位系统上似乎没有标准的 128 位整数。是否有一种检查溢出的简单方法,或一种获取 128 位整数的方法,适用于所有操作系统和编译器?
我尝试使用 GMP 作为更通用的解决方案,但它对我的要求来说有点重量级。
效率并不太重要,没有特定于处理器的 ASM。
最佳答案
这个问题中的大部分讨论都适用:
How to detect integer overflow?
许多用于 32 位溢出检查的技术也适用于 64 位(并非所有讨论的技术都使用下一个更大的整数类型来处理溢出)。
关于c++ - 超过 64 位时的未定义行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204606/