gpt4 book ai didi

C++ 运算符 % 保证

转载 作者:IT老高 更新时间:2023-10-28 21:52:52 27 4
gpt4 key购买 nike

是否保证(-x) % m,其中xm在c++中为正standard (c++0x) 为负数,等于 -(x % m)?

我知道它在我知道的所有机器上都是正确的。

最佳答案

除了Luchian的回答,这是来自C++11标准的对应部分:

The binary / operator yields the quotient, and the binary % operator yields the remainder from the division of the first expression by the second. If the second operand of / or % is zero the behavior is undefined. For integral operands the / operator yields the algebraic quotient with any fractional part discarded; if the quotient a/b is representable in the type of the result, (a/b)*b + a%b is equal to a.

漏掉了最后一句。所以部分

(a/b)*b + a%b is equal to a

是唯一依赖的引用,这意味着 a % b 将始终具有 a 的符号,考虑到 /< 的截断行为。因此,如果您的实现在这方面符合 C++11 标准,则模运算的符号和值确实可以完美地为负操作数定义。

关于C++ 运算符 % 保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710801/

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