int
으로 표현할 수있는 최대 값을 상수로 기록하고 싶지 않습니다. int
이 차지할 수있는 최대 메모리 양을 찾으려고합니다. 다음 코드를 생각해 내 특정 시스템의 경우파이썬 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
의 24 바이트이고, 다른 사람은 여전히 다른 사람 (36) 얼마나 많은 바이트를 사용, 28입니다 어떤 크기의 int
을 보유해야합니까?
파이썬 정수는 필요한만큼 크게 확장 될 수 있습니다. 즉, 상한값은 사용 가능한 메모리의 양에 의해 결정됩니다. –
"일부 정수는 24 바이트입니다."- 0 이외의 값은 어느 것입니까? –