可能重複:
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