sys.maxsize - 최대정수값
정리 이유
파이썬 알고리즘 인터뷰 p638 의 카데인 알고리즘을 보는데
best_sum = -sys.maxsize 라고 선언하는 부분을 처음봐서
sys.maxsize에 대해 찾아보고 정리하였다.
sys.maxsize
- python3에서 Py_ssize_t 타입이 가질 수 있는 가장 큰 정수를 리턴하는 것이다.
- 즉, 이 sys.maxsize 크기의 List가 python3에서 만들 수 있는 최대 크기의 List이다.
- 일반적으로 32비트 플랫폼에서는 2^31 - 1 이고
- 64비트 플랫폼에서는 2^63 - 1 이다.
python3에서 int 자료형 정수 최대값, 최소값
- maximum = sys.maxsize
- minimum = -(sys.maxsize+1)
float(‘inf’) 와의 차이
파이썬에서 코딩할 때 아주 큰 값을 잡기 위해 float(‘inf’)를 자주 사용하는데, 이는 float 자료형의 양의 무한대값이다.
무한대 값과 Py_ssize_t 타입이 가질 수 있는 가장 큰 정수 값은 서로 의미하는 것이 다르다.
float 자료형의 양의 무한대 값과 음의 무한대 값
maximum = float(‘inf’)
minimum = float(‘-inf’)
int(float(‘inf’)) 혹은 int(float(‘-inf’)) 는 불가하다.
OverflowError : cannot convert to float infinity to integer
위와 같은 오류 메세지가 뜬다.
참고 문서
https://docs.python.org/3/library/sys.html#sys.maxsize
An integer giving the maximum value a variable of type Py_ssize_t can take.
It’s usually
2^31 - 1 on a 32-bit platform
2^63 - 1 on a 64-bit platform.
https://www.python.org/dev/peps/pep-0353/
PEP 353 – Using ssize_t as the index type