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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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