[python] 긴 정수의 최대 값

긴 정수의 최대 값을 예를 들어 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입니다. 비대칭은 2의 보수 이진 산술을 사용한 결과입니다.

sys.maxsize 플랫폼의 Py_ssize_t 유형에서 지원하는 가장 큰 양의 정수이므로 최대 크기 목록, 문자열, dict 및 기타 여러 컨테이너가 가질 수 있습니다.

완전성을 위해 다음은 Python 3 버전입니다 .

sys.maxsize Py_ssize_t
유형의 변수가 취할 수있는 최대 값을 제공하는 정수입니다. 일반적으로 32 비트 플랫폼에서는 2 ^ 31-1이고 64 비트 플랫폼에서는 2 ^ 63-1입니다.

수레 :

있다 float("inf")float("-inf"). 다른 숫자 유형과 비교할 수 있습니다.

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


답변

Python long은 임의로 클 수 있습니다. 다른 어떤 값보다 더 큰 값이 필요한 경우를 사용할 수 있습니다 float('inf'). Python은 다른 유형의 숫자 ​​값을 비교하는 데 문제가 없기 때문입니다. 마찬가지로 다른 값보다 작은 값의 경우 float('-inf').


답변

제목 질문에 대한 직접적인 답변 :

정수는 크기가 무제한이며 Python에서 최대 값이 없습니다.

명시된 기본 사용 사례를 다루는 답변 :

당신이하려는 일에 대한 당신의 의견에 따르면, 당신은 현재

minval = MAXINT;
for (i = 1; i < num_elems; i++)
    if a[i] < a[i-1]
        minval = a[i];

그것은 파이썬에서 생각하는 방법이 아닙니다. Python에 대한 더 나은 번역 (하지만 여전히 최고는 아닙니다)은 다음과 같습니다.

minval = a[0]  # Just use the first value
for i in range(1, len(a)):
    minval = min(a[i], a[i - 1])

위의 내용은 MAXINT를 전혀 사용하지 않습니다. 솔루션의 해당 부분은 모든 프로그래밍 언어에 적용됩니다. 컬렉션에서 가장 작은 값을 찾기 위해 가능한 가장 높은 값을 알 필요는 없습니다.

하지만 어쨌든 파이썬에서 실제로하는 일은

minval = min(a)

즉, 루프를 전혀 작성하지 않습니다. 내장 min()함수는 전체 컬렉션의 최소값을 가져옵니다.


답변

longPython 2.x의 유형은 임의의 정밀도 산술을 사용하며 가능한 최대 값이 없습니다. 사용 가능한 메모리에 의해 제한됩니다. Python 3.x에는 기본 기계 정수로 표현할 수없는 값에 대한 특별한 유형이 없습니다. 모든 것이 int있고 변환은 뒤에서 처리됩니다.


답변

Python의 C / C ++ Long은 정밀도가 무제한입니다. 자세한 정보는 파이썬의 숫자 유형 섹션을 참조하십시오 sys.maxint. 정수의 최대 값을 결정하려면을 참조하십시오 . 자세한 내용은 sys 문서에서 얻을 수 있습니다 .


답변

다음을 사용할 수 있습니다. float의 최대 값은

float('inf')

부정적인

float('-inf')


답변

python3에서 float 값을 int 함수에 보낼 수 있으며 정수 표현으로 1.7976931348623157e + 308을 가져올 수 있습니다.

import sys
int(sys.float_info.max)