Подтвердить что ты не робот

Максимальное значение для длинного целого

Как назначить максимальное значение для длинного целого числа переменной, аналогичной, например, С++ LONG_MAX.

4b9b3361

Ответ 1

Длинные целые числа:

Нет явно определенного предела. Объем доступного адресного пространства составляет практический предел.
(Взято с этого сайта). Смотрите документы Числовые типы, где вы увидите, что Long integers have unlimited precision. В Python 2 целые числа автоматически переключаются на длинные, когда они превышают их пределы:

>>> 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 Наибольшее положительное целое число, поддерживаемое Pythons regular целочисленный тип. Это не менее 2 ** 31-1. Наибольшее отрицательное целое число is -maxint-1 - асимметрия возникает из-за использования дополнения 2s двоичная арифметика.

sys.maxsize Наибольшее положительное целое число, поддерживаемое платформами Py_ssize_t, и, таким образом, списки максимального размера, строки, dicts и многие другие контейнеры могут иметь.

и для полноты, здесь версия Python 3:

sys.maxsizeЦелое число, дающее максимальное значение переменной типа Py_ssize_t. Его обычно 2 ^ 31 - 1 на 32-битной платформе и 2 ^ 63 - 1 на 64-битной платформе.

поплавки:

Там float("inf") и float("-inf"). Их можно сравнить с другими числовыми типами:

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

Ответ 2

Python long может быть сколь угодно большим. Если вам нужно значение, большее любого другого значения, вы можете использовать float('inf'), так как Python не имеет проблем с сопоставлением числовых значений разных типов. Аналогично, для значения, меньшего любого другого значения, вы можете использовать float('-inf').

Ответ 3

Прямой ответ на вопрос заголовка:

Целые числа не ограничены по размеру и не имеют максимального значения в Python.

Ответ, в котором указаны указанные варианты использования:

В соответствии с вашим комментарием о том, что вы пытаетесь сделать, вы в настоящее время думаете что-то в строках

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

Это не то, как думать в Python. Лучший перевод на Python (но все же не самый лучший) был бы

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

Обратите внимание, что вышесказанное не использует MAXINT. Эта часть решения применяется к любому языку программирования: вам не нужно знать максимально возможное значение, чтобы найти наименьшее значение в коллекции.

Но в любом случае, что вы действительно делаете в Python, просто

minval = min(a)

То есть, вы вообще не пишете цикл. Встроенная функция min() получает минимум от всей коллекции.

Ответ 4

В отличие от C/С++ Long в Python имеют неограниченную точность. Обратитесь к разделу Числовые типы в python для получения дополнительной информации. Чтобы определить максимальное значение целого числа, вы можете просто отправить sys.maxint. Вы можете получить более подробную информацию из документации sys.

Ответ 5

long type в Python 2.x использует произвольную арифметику точности и не имеет такой вещи, как максимально возможное значение. Он ограничен доступной памятью. Python 3.x не имеет специального типа для значений, которые не могут быть представлены встроенным целым числом - все это int, а преобразование обрабатывается за кулисами.

Ответ 6

Вы можете использовать: max значение float

float('inf')

для отрицательных

float('-inf')

Ответ 7

В python3 вы можете отправить значение float в int-функцию, чтобы получить этот номер 1.7976931348623157e + 308 в целочисленном представлении.

import sys    
int(sys.float_info.max)