Почему -2147483648 не может быть представлено в шестнадцатеричном виде?C++

Программы на C++. Форум разработчиков
Anonymous
 Почему -2147483648 не может быть представлено в шестнадцатеричном виде?

Сообщение Anonymous »

В соответствии с документацией C++ размер шестнадцатеричного литерала увеличивается от int -> unsigned int -> long -> unsigned long -> long long -> unsigned long long.
Но мне интересно, как указать шестнадцатеричный литерал -2147483648?
По праву это должно быть возможно, поскольку это значение можно вписать в int.
Но при компиляции приведенного ниже кода возникает следующая ошибка.

унарный оператор минус применен к беззнаковому типу, результат по-прежнему без знака

Код: Выделить всё

#include 
#include 
int main()
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79056916/why-cant-2147483648-represented-in-hex-literal[/url]

Вернуться в «C++»