Python int минимальное значение

Python int минимальное значение

These represent numbers in the range -2147483648 through 2147483647. (The range may be larger on machines with a larger natural word size, but not smaller.) When the result of an operation would fall outside this range, the result is normally returned as a long integer (in some cases, the exception OverflowError is raised instead). For the purpose of shift and mask operations, integers are assumed to have a binary, 2’s complement notation using 32 or more bits, and hiding no bits from the user (i.e., all 4294967296 different bit patterns correspond to different values).

Plain integers (also just called integers) are implemented using long in C, which gives them at least 32 bits of precision (sys.maxint is always set to the maximum plain integer value for the current platform; the minimum value is -sys.maxint — 1). Long integers have unlimited precision.

Numbers are created by numeric literals or as the result of built-in functions and operators. Unadorned integer literals (including binary, hex, and octal numbers) yield plain integers unless the value they denote is too large to be represented as a plain integer, in which case they yield a long integer. Integer literals with an ‘L’ or ‘l’ suffix yield long integers (‘L’ is preferred because 1l looks too much like eleven!).

Constructors¶

int() Returns an expression converted into an integer number. literal syntax Initializes a new instance of the int type.

Base Designators¶

Methods¶

bit_length Returns the number of bits necessary to represent an integer in binary, excluding the sign and leading zeros.

© Copyright 2015, Jakub Przywóski. Revision 9a3b94e7 .

Versions latest Downloads pdf htmlzip epub On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Источник

Максимальное и минимальное значение int в Python

В этой статье мы рассмотрим, как получить максимальное и минимальное целочисленное значение (int) в Python. Мы разберем, в чем смысл этих значений и как их получить в версии Python до и после 3.0.

Короткая справка для тех, кому лень читать всю статью

В Python для получения максимального и минимального целочисленных значений можно использовать sys.maxsize из модуля sys .

Читайте также:  seodon.ru - Убираем отступы по краям страницы

sys.maxsize дает максимальное целочисленное значение, а его отрицательная версия -sys.maxsize — 1 – минимальное.

import sys # Get the maximum integer value max_int = sys.maxsize # Get the minimum integer value min_int = -sys.maxsize - 1 # Print the values print(f"The maximum integer value is ") print(f"The minimum integer value is ")

Обратите внимание, что Python 3.0+ не ограничивает тип данных int , и в нем нет максимального/минимального значения. Но чтобы получить практическое максимальное целочисленное значение для отдельного целочисленного слова в вашей операционной системе, используйте sys.maxsize , как показано выше.

А теперь давайте разберем эту тему с самого начала.

Экстремум целочисленного значения

Память компьютера ограничена. Типичная операционная система использует 32-битную или 64-битную систему представления чисел. Это означает, что система может представить 2³² или 2⁶⁴ чисел.

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

Давайте рассмотрим подробнее, что вообще ограничивает размер целого числа.

Почему для целых чисел существует максимум/минимум?

Максимальное и минимальное значение int в двоичной форме в 32-битной системе. Знаки, представленные 0 и 1, обведены кружочками.

Максимальное целое число – это максимальное число, которое может храниться в двоичном хранилище. Многие операционные системы используют 32 бита для хранения данных. Это означает, что любое число, которое вы хотите использовать, должно поместиться в эти 32 бита.

Бит может иметь значение либо 0, либо 1. Если составить строку из этих битов, то можно получить множество различных комбинаций 0 и 1.

Например, если у вас есть 2 бита, у вас есть 2² = 4 возможных комбинации:

А для N битов у вас есть 2^N возможных комбинаций.

Компьютер, использующий 32 бита для представления чисел, имеет общее количество возможных комбинаций 2³² = 4 294 967 296 . Это означает, что компьютер может представлять 2³² чисел так, что каждая комбинация битов соответствует числу в десятичной системе счисления.

Как вы знаете, существуют не только положительные числа, но и отрицательные, и ноль. Но биты не понимают отрицательных знаков. Вместо этого компьютер может использовать 1 как отрицательный знак, а 0 – как положительный.

Читайте также:  Производные классы си шарп

В 32-битной последовательности это означает, что знак обозначается крайним левым битом (1 для отрицательных, 0 для положительных значений). Поскольку один бит используется в качестве знака, для представления собственно чисел остается 31 бит.

Это означает, что самое большое целое число в 32-битной системе – это 0, за которым следует 31 единица. Другими словами, 2³⁰ + 2²⁹ + … + 2² + 2¹ + 2⁰ . Это 2³¹ — 1 или 2 147 483 647 . Таким образом, используя этот тип 32-битной системы знаковых целых чисел, можно считать от 0 до 2 147 483 647 .

Когда дело доходит до отрицательных значений, идея точно такая же. Наименьшее отрицательное значение – это единица, за которой следует 31 единица, то есть 2³⁰ + 2²⁹ + … + 2² + 2¹ + 2⁰ . В отрицательном значении это -2 147 483 647 .

Но помните, что поскольку значение 0 уже включено в диапазон положительных чисел, мы начинаем отсчет отрицательных значений с -1, а не с 0. Это означает, что наименьшее возможное отрицательное значение в 32-битной системе знаковых целых чисел на самом деле на единицу меньше, чем -2 147 483 647 , то есть -2 147 483 648 .

Если компьютер использует 64 бита для хранения чисел, то идея та же.

Максимальное значение 64-битного знакового целого числа – 2⁶³ — 1 = 9 223 372 036 854 775 807 , а минимальное значение – -(2⁶³ — 1) — 1 = -9 223 372 036 854 775 808 .

Подводя итог, можно сказать, что максимальные и минимальные значения целых чисел в языках программирования определяются объемом памяти, выделенной для их хранения, и типом используемого целого числа. Эти значения важны, поскольку они определяют диапазон значений, которые может хранить целочисленная переменная, и могут влиять на точность и аккуратность вычислений с целыми числами.

Максимальное значение int в Python

Чтобы получить максимальное значение целочисленного типа данных, используйте sys.maxsize .

import sys # Get the max integer value max_int = sys.maxsize print(f"The maximum integer value is ")

Минимальное значение int в Python

Чтобы получить минимальное значение целочисленного типа данных, используйте отрицательное значение sys.maxsize и вычтите из него 1. Единица вычитается, чтобы учесть, что 0 находится в диапазоне положительных значений.

import sys # Get the min integer value min_int = -sys.maxsize - 1 print(f"The minimum integer value is ")

Тип int в Python 3+ не имеет ограничений!

Начиная с Python 3, тип int является несвязанным. Это означает, что с помощью типа int можно представить сколь угодно большое число, ограничений нет.

Читайте также:  Firefox html document html чем открыть

В версиях Python до 3.0 тип int был привязан к диапазону [-2⁶³, 2⁶³ — 1] . Если вы хотели использовать число, выходящее за рамки этого диапазона, вам пришлось бы использовать тип данных long . На самом деле, преобразование из int в long происходит автоматически.

В качестве примера попробуем напечатать несколько больших чисел в Python 2, где тип int еще ограничен:

print(9223372036854775807) print(9223372036854775808)
9223372036854775807 9223372036854775808L

Обратите внимание на “L” в конце второго числа. Поскольку 9223372036854775808 больше максимального значения int , оно автоматически превратилось в значение long , которое Python обозначает добавлением “L” в конце.

Но в Python 3 тип int является неограниченным. По сути, то, что было long в Python 2, стало int в Python 3+. Кроме того, буква “L” больше не добавляется в конец больших целых чисел!

Давайте повторим предыдущий пример в Python 3:

print(9223372036854775807) print(9223372036854775808)
9223372036854775807 9223372036854775808

Хотя в Python нет ограничений на то, насколько большим может быть целое число, sys.maxsize дает вам верхнюю границу для практических списков или строк.

Максимальное значение работает как сигнальная метка в алгоритмах. Поэтому, хотя оно и не является жестким лимитом для целых чисел в Python, оно указывает на максимальный размер слова, используемый для представления целых чисел.

Для лучшего понимания приведем пример. Посмотрим, что произойдет, если попытаться использовать целое число, превышающее sys.maxsize , для доступа к элементу списка:

l = [1,2,3,4,5,6] value = l[10000000000000000000000000000000000]
Traceback (most recent call last): File "", line 1, in IndexError: cannot fit 'int' into an index-sized integer

Сообщение об ошибке говорит о том, что целочисленный индекс, который вы используете для доступа к элементам списка, слишком велик, чтобы быть индексом. Это происходит из-за ограничений вашей операционной системы. Индекс Python все равно должен быть целым числом, ограниченным 32-битными или 64-битными пределами.

Таким образом, хотя int не ограничен в Python, операционная система все равно использует 32 или 64 бита для представления чисел.

Спасибо за внимание. Успешного кодинга!

Источник

Оцените статью