Я пытаюсь перенести некоторые функции из приложения Java в Python.
В Java,
System.out.println(155 << 24);
Возвращает: -1694498816
В Python:
print(155 << 24)
Возвращает 2600468480
Многие другие побитовые операции работали одинаково на обоих языках. Почему в этих двух операциях есть другой результат?
EDIT: Я пытаюсь создать функцию в python для репликации работы левого оператора смены в Java. Что-то вроде:
def lshift(val, n):
return (int(val) << n) - 0x100000000
Однако это не кажется правильным, поскольку (я думаю) он превращает все отрицательные числа чисел?
EDIT2: Несколько часов спустя я решил, что, вероятно, не самая лучшая идея использовать Python для этого задания и будет участвовать в Java-приложении и использовать его в качестве микросервиса для существующего приложения Python.