У меня есть некоторые длинные постоянные для границ в моих вычислениях. Теперь у меня есть проводка, потому что некоторые условия недействительны, потому что числа «missinterpreted» Первый вывод - это номер, который я хочу использовать .... на выходе вы можете видеть, что знак - удален, поэтому я подумал о опустошение, но когда я добавить 0, так что число еще выше, выход правильно ....C++ Visual Studio внятно поведение знакового целого
Я использую Visual Studio 2012
cout<<-2147483648<<endl;
cout<<-2147483649<<endl;
cout<<-21474836480<<endl;
cout<<-21474836490<<endl;
cout<<-214748364800<<endl;
cout<<-214748364900<<endl;
, как вы можете видеть, в первые 2 строки - знак снят
2147483648
2147483647
-21474836480
-21474836490
-214748364800
-214748364900
любая идея, в чем проблема?
https://en.wikipedia.org/wiki/Integer_overflow – Boiethios
Ваш пример не даже компиляции в VS2012 , Он не работает со следующим сообщением об ошибке для этих двух строк: 'ошибка C4146: оператор унарного минуса, примененный к неподписанному типу, результат все равно неподписан. –