为什么模运算符会产生负值?
为什么这样的操作会
std::cout << (-7 % 3) << std::endl;
std::cout << (7 % -3) << std::endl;
产生不同的结果?
-1
1
Why do such operations:
std::cout << (-7 % 3) << std::endl;
std::cout << (7 % -3) << std::endl;
give different results?
-1
1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从 ISO14882:2011(e) 5.6-4 开始:
剩下的就是基本数学:
请注意
ISO14882:2003(e) 中的内容不再出现在 ISO14882:2011(e) 中
From ISO14882:2011(e) 5.6-4:
The rest is basic math:
Note that
from ISO14882:2003(e) is no longer present in ISO14882:2011(e)
在 c++ 中默认:
在 python 中:
在 c++ 到 python 中:
in c++ default:
in python:
in c++ to python:
在这种情况下(即当一个或两个操作数为负时)的符号是实现定义的。该规范在 §5.6/4 (C++03) 中表示,
就 C++03 而言,这就是该语言必须说的全部内容。
The sign in such cases (i.e when one or both operands are negative) is implementation-defined. The spec says in §5.6/4 (C++03),
That is all the language has to say, as far as C++03 is concerned.