溢出后 C++ 差异正确

标签 c++ overflow int

我只是想知道差异是否会通过溢出保持正确。例如,我正在尝试将 Windows 高分辨率计时器与 QueryPerformanceFrequency(&local) 结合使用。

该计数器的起始值未定义。然而,有趣的一点只是与起点的不同。所以一开始你记录值,然后总是看diff。现在,如果我可以保证差异不会大于 LARGE_INTEGER,这就足够了吗?

比如说一个有 4 位。这允许 1...15。如果计数器现在从 14 开始,到 2 停止,我执行 2 - 14,我应该得到 4,不是吗?所以只要差异较小,我就不必担心溢出?

谢谢

最佳答案

由于您使用的是特定于 Windows 的结构,因此您的问题更容易解决,因为它只需要在支持 Windows 的机器上运行。 Windows 需要二进制补码算法,并且二进制补码算法以您期望的方式处理溢出(溢出是计算 mod 2^n)。

关于溢出后 C++ 差异正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055128/

相关文章:

c++ - 逐字浏览文本文件并替换某些单词

带背景的 css 网格 - 当网格大于背景时滚动

c - 为什么直接将值传递给 sizeof 运算符时,数据类型的大小会不同?

java - 如果发生什么情况,我怎样才能使之前的整数改变数字?

c++ - 什么时候依赖垃圾收集,什么时候不依赖?

C++ 和 SDL : SDL event repeats endlessly

c++ - 如何创建具有基本类型的名称的 C++ 多维数组

html - 水平滚动CSS?

overflow - 变换比例和高度 100%

java - 将 ascii 数字数组转换为各自的字符