Я пытаюсь выполнить умножение и деление с 64-битными целыми числами. Я хочу, чтобы мои результаты были 64-битными, любое переполнение должно быть усечено. Мне удалось заставить его работать с умножениями:
z = 0xed5c6911
y = 0xFFFFFFFF & (z * 33)
print hex(z)
print hex(y)
Это выводит:
0xed5c6911
0x98e98b31
как и ожидалось.
Я хотел бы изменить это сейчас:
z = 0xFFFFFFFF & (y / 33)
print hex(z)
Я ожидал бы 0xed5c6911
, исходное значение z
, но я получаю 0x4a23a85
.
Как я могу отменить операцию, выполненную в первом фрагменте, и получить исходное значение z
из y
?