可能重复:
Problem in calculating checksum : casting int to signed int32的Python位位移32位约束
这应该是一个比较简单的答案,我只是真的不知道如何寻找它...我有几个半相关的things,但没有什么符合我想要做的。
>>> 1171855803 << 7
149997542784L # I want -326312576
换句话说,将数字视为整数并且不允许将其转换为长整数。 我该怎么做?
我试图解决在this question:
>>> x = 0xFFFFFFFF & (1171855803 << 7)
>>> if x > 0x7FFFFFFF: print -(~(x - 1) & 0xFFFFFFFF)
else: print x
-326312576L # yay!
它的工作原理!
你是对的。 – skeggse