我有个问题,我一直在寻找一个答案。在
在一个用PowerBuilder编写的应用程序中,有一个bug(没有被及时发现),原因如下-long * long
导致long
(不是在longlong
)中,因为输出有点奇怪。现在我需要在python中执行同样的操作。例如:
a = 3423729
b = 96300
c = a*b = 329705102700
PowerBuilder说:
^{pr2}$由于进一步的测试,它似乎是一个有符号的32位整数,但我不能让python返回这样的结果。不管怎样,使用calc并让他使用dword乘法,结果是-1007379092
。有什么线索可以解决这个问题吗?在
我不知道您为什么要这样做,因为Python专门动态地分配存储以避免整数溢出。如果确实要复制溢出,可以尝试以下操作:
您可以使用
ctypes
软件包:您的应用程序似乎正在获取结果的最右边的32位,表示为32位int
您可以使用
ctypes
库中的类型以类似的方式表示特定大小的有符号/无符号整数。对于有符号的32位int:相关问题 更多 >
编程相关推荐