1. ホーム
  2. python

[解決済み] 長整数の最大値

2022-09-22 08:36:05

質問

長い整数の最大値を変数に代入するにはどうしたらよいでしょうか。例えば、C++の LONG_MAX .

どのように解決するのですか?

長整数です。

明示的に定義された制限はありません。利用可能なアドレス空間の量が現実的な制限を形成します。

(以下から引用 この のサイト)。のドキュメントを参照してください。 数値の種類 を参照してください。 Long integers have unlimited precision . Python 2では、Integerが限界を超えて成長した場合、自動的にlongに切り替わります。

>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>



整数の場合、次のようになります。

maxint と maxsize です。

int 型の最大値は、Python 2.x では sys.maxint . Python 3 では削除されましたが sys.maxsize は代わりによく使われます。から 変更履歴 :

<ブロッククオート

定数 sys.maxint は、もはや整数の値に制限がないため、削除されました。 を削除しました。しかし、sys.maxsizeは、リストや文字列のインデックスよりも大きな整数として使用することができます。 リストや文字列のインデックスよりも大きな整数として使うことができます。に準拠しています。 実装の "自然な "整数サイズに準拠し、一般的には、以前の 同じプラットフォームの以前のリリースのsys.maxintと同じです(同じビルドオプションと仮定しています)。 同じビルドオプションを仮定しています)。

と、興味のある人のために 違い (Python 2.x)と同じです。

sys.maxint Pythonの通常の整数型がサポートする最大の正の整数です。 型がサポートする最大の正の整数です。これは少なくとも2**31-1です。最大の負の整数は は-maxint-1 です。 バイナリ演算を使用することによる非対称性です。

sys.maxsize プラットフォームでサポートされる最大の正の整数。 Py_ssize_t 型がサポートする最大の正の整数で、リスト、文字列、ディクショナリ、その他多くのコンテナが持つことができる最大サイズです。 リスト、文字列、ディクショナリ、その他多くのコンテナが持つことのできる最大のサイズです。

そして、完全性を期すために、ここで Python 3 バージョン :

sys.maxsize Py_ssize_t 型の変数が取り得る最大値を示す整数です。通常、32ビットプラットフォームでは 2^31 - 1 で、64ビットプラットフォームでは 64ビットプラットフォームでは 2^63 - 1 です。

フロートです。

そこに float("inf")float("-inf") . これらは他の数値型と比較することができます。

>>> import sys
>>> float("inf") > sys.maxsize
True