试图回答解决方案处理IP地址和网络掩码的另一篇文章,我被简单的按位算术卡住了。Python:无符号32位按位算术
在Python中,是否存在一种标准方式来进行按位AND,OR,XOR,NOT操作,假设输入是“32位”(可能是负数)整数或长整数,并且结果必须是长整型在[0,2 ** 32]的范围内?
换句话说,我需要一个可操作的Python对应于无符号长整数之间的C位操作。
编辑:具体的问题是这样的:
>>> m = 0xFFFFFF00 # netmask 255.255.255.0
>>> ~m
-4294967041L # wtf?! I want 255
我想Pythons宽松打字会玩这样的任何算法地狱......我也想看到一个,只是出于好奇。 – 2008-10-16 23:40:21
从Python 3.3开始,遇到这种情况的一些用户可能会对[ipaddress模块](http://docs.python.org/dev/library/ipaddress)感兴趣。 – gerrit 2014-02-05 09:41:24