Задать вопрос
@Riki-tiki-tavi

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

__int64 value = -0x7fffffff - 2;
Почему-то дает 0x000000007fffffff хотя должен 0xffffffff80000001. В чем причина?
  • Вопрос задан
  • 235 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Stepik
    Внутреннее устройство контейнеров в STL (C++)
    2 недели
    Далее
  • Skillbox
    Разработчик на C++
    7 месяцев
    Далее
Решения вопроса 1
__int64 c = -0x7fffffffll - 2;
или
__int64 c = (__int64)-0x7ffffff -2;

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

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

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