10

Python では、int が 2**31 より大きい場合、long に変わります。

a = 2147483647 a + 1 = 2147483648

b = -2147483648 b - 1 = -2147483649

しかし、C の int のような Python int オーバーフローが必要です。

a = 2147483647 a + 1 = -2147483648

b = -2147483648 b - 1 = 2147483647

出来ますか?前もって感謝します!

4

2 に答える 2

6

numpy を試してください:

>>> x = numpy.int32(2147483647)
>>> x
2147483647
>>> type(x)
<type 'numpy.int32'>
>>> x+1
__main__:1: RuntimeWarning: overflow encountered in long_scalars
-2147483648
>>> type(x+1)
<type 'numpy.int32'>

int通常の Python オーバーフロー動作を期待するコードに渡す前に、これらを呼び出すようにしてください。

于 2013-09-13T04:18:44.023 に答える