@Riki-tiki-tavi

Почему не выполняется вычисление?

__int64 value = -0x7fffffff - 2;
Почему-то дает 0x000000007fffffff хотя должен 0xffffffff80000001. В чем причина?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
__int64 c = -0x7fffffffll - 2;
или
__int64 c = (__int64)-0x7ffffff -2;

смысл - указать, что первое значение имеет 64 разряда
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
drem1lin
@drem1lin
чуть программист, чуть чуть админ...
потому что у вас знак минус.....
А вообще проверил у себя дает 0x000000007ffffffd
заменив на +2 получаю 0xffffffff80000001
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы