Как назначить максимальное значение для длинного целого числа переменной, аналогичной, например, С++ LONG_MAX
.
Максимальное значение для длинного целого
Ответ 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)