在一个ones-complement平台上,以下代码会打印什么?
#include <iostream>
int main() {
int i = 1, j = -1;
std::cout << i+j << std::endl;
return 0;
}
我会怀疑它会打印出"0"而不是"-0",但我似乎找不到确凿的证据。
编辑:为了澄清,我想知道如何打印-0,有几个人建议,在实践中,补码的实现可能不会生成负零。
在这些情况下,以下内容被建议用于实际生成-0:
#include <iostream>
int main() {
std::cout << ~0 << std::endl;
return 0;
}
这个问题仍然存在:这将印出什么?
0
。我非常确定这是每次都应该发生的事情。 - Bartek Banachewicz