64 -битная проблема вычитания без знакаC++

Программы на C++. Форум разработчиков
Anonymous
64 -битная проблема вычитания без знака

Сообщение Anonymous »

Итак, у меня есть следующее-< /p>

size_t Num2= 2359198081
size_t Num1= 2359197799

size_t Diff= Num2 - Num1;
< /code>

Если я сделаю, < /p>

std::cout

Diff: 18446744071938113404
< /code>

Если я делаю int64_t вместо size_t, то, как и ожидалось, я получаю отрицательное значение, поскольку Num2 и Num1 больше, чем 2 повышения до 32 < /p>

Если я сделаю, < /p>

, < /p>

std::cout

, что, как и ожидалось. скорее как я могу заставить это сделать правильное 64 -битное вычитание?

Подробнее здесь: https://stackoverflow.com/questions/394 ... tion-issue

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