Python左移(签名问题)

时间:2012-08-28 16:46:55

标签: javascript python integer signed bit-shift

在这个例子中,我获得了一个正数,但我需要一个Python中的表达式,它提供与Javascript相同的结果。

如何在Python中获得负面结果?

Python 2.7

mv = 1732584193 << 5

结果:

  

mv = 55442694176

bin(mv)提供0b1100111010001010010001100000001

的Javascript

mv = 1732584193 << 5

结果:

  

mv = -391880672

mv.toString(2)提供-10111010110111001111111100000

1 个答案:

答案 0 :(得分:0)

您可以使用ctypes执行此操作:

>>> import ctypes
>>> mv = ctypes.c_int32(1732584193)
>>> mv.value <<= 5
>>> mv
c_int(-391880672)
>>> bin(mv.value)
'-0b10111010110111001111111100000'