c++ - 超过 64 位时的未定义行为

标签 c++ 64-bit

在我当前的 32 位应用程序中,我(偶尔)通过对 64 位整数进行运算来检查溢出。

然而,在 64 位系统上似乎没有标准的 128 位整数。是否有一种检查溢出的简单方法,或一种获取 128 位整数的方法,适用于所有操作系统和编译器?

我尝试使用 GMP 作为更通用的解决方案,但它对我的要求来说有点重量级。

效率并不太重要,没有特定于处理器的 ASM。

最佳答案

这个问题中的大部分讨论都适用:

How to detect integer overflow?

许多用于 32 位溢出检查的技术也适用于 64 位(并非所有讨论的技术都使用下一个更大的整数类型来处理溢出)。

关于c++ - 超过 64 位时的未定义行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204606/

相关文章:

c++ - 类没有成员 "operator<<"

c++ - 使用指针访问struct c++ vector 中的元素

C++ 嵌套类

windows-10 - 在 Windows 10 上安装 tizen studio 时出错

windows - 使用 WiX 在单个 MSI 中注册 32 位和 64 位 DLL

c - 以 32 位模式编译程序对优化有何影响

c++ - 你能在对象函数上用 decltype 声明一个成员变量吗?

c++ - 如何从命令行运行 Eclipse IDE for C/C++(我已经安装了)

java - 将 Launch4J 配置为仅使用 32 位 JVM

c++ - 使用CodeBlocks编译64位DLL会导致链接器错误