1. ホーム
  2. python

[解決済み] Pythonはintとlongをどのように管理するのですか?

2022-03-02 16:10:45

質問

Pythonが内部でint型とlong型をどのように管理しているかご存知の方はいらっしゃいますか?

  • 動的に正しい型を選択するのですか?
  • int型の限界値は?
  • Python 2.6を使っていますが、以前のバージョンと違うのですか?

以下のコードはどのように理解すればよいですか?

>>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>

更新してください。

>>> print type(0x7fffffff)
<type 'int'>
>>> print type(0x80000000)
<type 'long'>

解決方法は?

intlong が統一されました。 数バージョン前の . それ以前は、数学演算によってintをオーバーフローさせることが可能でした。

3.xではさらに進化し、longを完全に排除してintのみとしました。

  • パイソン2 : sys.maxint は、Pythonのintが保持できる最大値を含んでいます。
    • 64bit Python 2.7では、24byteです。で確認してください。 sys.getsizeof() .
  • パイソン3 : sys.maxsize は、Python の int が取り得る最大サイズをバイトで表します。
    • 32ビットではギガバイト、64ビットではエクサバイトになります。
    • このような大きなintは、8のべき乗に近い値を持つことになります。 sys.maxsize .