Я использовал mmap в качестве распределителя памяти для выделения пространства и выполнил приведение типа, что привело меня к столкнуться с этой проблемой. При изменении значения с -1 на 153538 моя программа вместо этого читала -281474976557118. Дополнение обоих значений поразительно похоже, что заставляет меня подозревать, что было прочитано промежуточное состояние.
Код: Выделить всё
The two's complement of -1 is:
1111111111111111111111111111111111111111111111111111111111111111
The two's complement of 153538 is:
0000000000000000000000000000000000000000000000100101011111000010
The two's complement of -281474976557118 is:
1111111111111111000000000000000000000000000000100101011111000010
ожидаем авторитетного заявления
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-to-inter