python 中强制转换long型为int型
2012年2月16日
没有评论
python的int型最大值和系统有关,32位和64位系统看到的结果是不一样,分别为2的31次方减1和2的63次方减1,可以通过sys.maxint查看此值。
python2.4版本以后,如果int的值超出范围不会溢出,而是内部转换为long,找了很久似乎没有从long型强制转换成int,这里所说的int取值范围是和java里一致,即用四个字节表示。代码如下:
def longToInt(value): if value > 2147483647 : return (value & (2 ** 31 - 1)) else : return value
通过测试,在32位和64位上运算结果一致,另外2 ** 31 – 1换成常量2147483647对性能有微小的提升。