Tratando de responder a otra publicación cuya solución se ocupa de las direcciones IP y las máscaras de red, me quedé atrapado con la aritmética bit a bit.Python: aritmética bit a bit sin signo de 32 bit
Hay una manera estándar, en Python, de llevar a cabo las operaciones Y, O, XOR, NOT a nivel de bits, suponiendo que las entradas son enteros o longitudes "32 bit" (quizás negativas) y que el resultado debe ser largo en el rango [0, 2 ** 32]?
En otras palabras, necesito una contraparte de Python que funcione con las operaciones de bit C entre longitudes sin firmar.
EDIT: la cuestión específica es la siguiente:
>>> m = 0xFFFFFF00 # netmask 255.255.255.0
>>> ~m
-4294967041L # wtf?! I want 255
Imagino que la tipificación libre de Pythons sería jugar con cualquier algoritmo como este ... También quiero ver uno, solo por curiosidad. –
A partir de Python 3.3, algunos usuarios que lo encuentren pueden estar interesados en [el módulo ipaddress] (http://docs.python.org/dev/library/ipaddress). – gerrit