iTa*_*ayb 0 python integer-overflow
我有一个使用该数字的python代码2637268776(大于sys.maxint32位系统).因此它保存为long类型.
我在我的代码中使用了C++框架绑定,因此我有一个案例,它被转换为int32,导致int32溢出:
2637268776 --> -1657698520
Run Code Online (Sandbox Code Playgroud)
在我的情况下,它只能发生一次,因此可以安全地假设如果整数是负数,我们只有一个int溢出.我怎样才能在数学上反转数字?
总之,你不能.有许多长整数将映射到相同的负数.在您的示例中,这些是2637268776L,6932236072L,11227203368L,15522170664L,19817137960L等.
此外,由于这种溢出,可能得到正数.例如,4294967297L将映射到1.