Преобразование отрицательного числа в положительное, которое умещается в 64-битном Python слове - PullRequest
0 голосов
/ 26 мая 2020

Предположим, у нас есть 64-bits отрицательное число int в Python.

x = -9223372036854775808 # in binary: 1000 0000 ... [48 zeroes more] ... 0000 0000

Теперь я хочу преобразовать это число в положительное и сохранить его двоичное представление. Для меня самый быстрый способ сделать это:

x = x & 0x0FFFFFFFFFFFFFFFF # in binary: 0 1000 0000 ... [48 zeroes more] ... 0000 0000

Итак, я добавил еще один 0 перед номером 64-bits, и теперь Python решил, что это positive int.

Означает ли это, что теперь я работаю с 65-bits положительным числом, и оно не соответствует Python s 64-bits word, или я просто преобразовал число в его беззнаковое представление, так что это просто положительное число 64-bits, которое вписывается в Python 64-bits word?

...