Пытаясь ответить на другой пост, решение которого касается IP-адресов и сетевых масок, я застрял в простой поразрядной арифметике.
Существует ли стандартный способ в Python выполнять побитовые операции AND, OR, XOR, NOT, предполагая, что входы представляют собой "32-битные" (возможно, отрицательные) целые числа или longs и что результат должен быть длинным диапазон [0, 2 ** 32]?
Другими словами, мне нужен рабочий Python-аналог побитовых операций C между unsigned longs.
EDIT: конкретная проблема заключается в следующем:
>>> m = 0xFFFFFF00 # netmask 255.255.255.0
>>> ~m
-4294967041L # wtf?! I want 255