На платформе с одним дополнением, что будет печатать следующий код?
#include <iostream>
int main() {
int i = 1, j = -1;
std::cout << i+j << std::endl;
return 0;
}
Я бы заподозрил, что напечатал бы "0" вместо "-0", но я не могу найти ничего авторитетного.
Изменить: Чтобы уточнить, меня интересует, как -0 будет напечатано, несколько человек предположили, что на практике реализация одних-комплиментов может не генерировать отрицательный ноль с вышеуказанным кодом.
В этих случаях было предложено фактически создать a -0:
#include <iostream>
int main() {
std::cout << ~0 << std::endl;
return 0;
}
Остается вопрос: что будет печатать?