1. ホーム
  2. python

[解決済み] Pythonで、`sys.maxsize`とは何ですか?

2022-03-01 19:41:44

質問

と仮定して、この数字( 2^63 - 1 ) は、python が扱うことのできる、あるいは変数として保存することのできる最大値でした。しかし、これらのコマンドは問題なく動作しているようです。

>>> sys.maxsize
9223372036854775807
>>> a=sys.maxsize + 1
>>> a 
9223372036854775808

では、全く意味はないのでしょうか?Pythonは、計算資源が許す限り、任意の大きな数を扱うことができるのでしょうか?

ちなみに、私のバージョンのプリントアウトはこんな感じです。

>>> sys.version
3.5.2 |Anaconda custom (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]'

解決方法は?

Pythonは計算において、任意の大きな整数を扱うことができます。64ビット(あるいは基礎となるハードウェアの制限値)に収まらないほど大きな整数は、ソフトウェアで処理されます。そのため、Python 3には sys.maxint 定数です。

sys.maxsize 一方、プラットフォームのポインタサイズは、文字列やリストなどのPythonのデータ構造のサイズを制限するものです。