2012-08-28 41 views
3

在这个例子中,我获得了一个正数,但我需要一个Python中的表达式,其结果与Javascript中的结果相同。Python左移(签名问题)

怎么可能阴性结果在Python中获得?

的Python 2.7

mv = 1732584193 << 5 

结果:

MV = 55442694176

bin(mv)给出0b1100111010001010010001100000001

的Javascript

mv = 1732584193 << 5 

结果:

MV = -391880672

mv.toString(2)-10111010110111001111111100000

+0

像这样:http://stackoverflow.com/q/1375897/707111 – Ryan

+0

谢谢,我已经阅读并试图转向直接返回的值是功能,具有相同的结果。 – Martin0x777

+0

不要移动从该函数返回的值。 Shift,*然后*应用该功能。你还需要用'0xffffffff'来掩盖它。 – Ryan

回答

0

你可以使用ctypes的做到这一点:

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

谢谢你jterrace。坚韧已经指出了答案,你的方法是最适合我的脚本。 – Martin0x777