0
int
で表現できる最大値を記録する定数を探していません。私はint
が占有できるメモリの最大量を調べたいと考えています。次のコードを考えてみましょう:私の特定のマシンのPythonのintが占めるバイト数を取得するにはどうすればよいですか?
import sys
def print_and_execute(*args):
for s in args:
print(s, end = " == ")
r = eval(s)
print(r)
return
print_and_execute("type(5) ")
print_and_execute("sys.getsizeof(5)")
i = int()
print_and_execute("i")
print_and_execute("sys.getsizeof(i)")
i = 2937
print_and_execute("i")
print_and_execute("sys.getsizeof(i)")
print_and_execute("sys.maxsize")
print_and_execute("sys.getsizeof(sys.maxsize)")
を、出力は次のとおりです。
どうやらtype(5) == <class 'int'>
sys.getsizeof(5) == 28
i == 0
sys.getsizeof(i) == 24
i == 2937
sys.getsizeof(i) == 28
sys.maxsize == 9223372036854775807
sys.getsizeof(sys.maxsize) == 36
、いくつかのint
sが他の人が36どのように多くのバイトを使用し、まだ、他は28あり、24バイトの長さ任意のサイズのint
を保持する必要がありますか?
Pythonの整数は、必要に応じて大きくすることができます。換言すれば、上限は利用可能なメモリの量によって決定される。 –
"一部のintは24バイト長です" - 0以外はどれですか? –