Skip to content

Integer (int) hat keine Obergrenze in Python3

Python

In Python3 hat keine Obergrenze.

Python2 hat zwei Integer-Typen, int und long, aber Python3 hat nur int. int in Python3 ist äquivalent zu long in Python2, und es gibt keine Obergrenze. Sie können also große Werte verarbeiten, wie Arbeitsspeicher verfügbar ist.

Dieser Artikel hat folgenden Inhalt.

  • int und long in Python2
  • int in Python3 hat keine Obergrenze

Im following Artikel FINDEN SIE sterben maximalen und minimalen Werte der Gleitkommazahl Float.

Beachten Sie, dass NumPy Datentypen mit einer festen Anzahl von Bits verwendet, z. B. int32 (32-Bit-Ganzzahl) und int64 (64-Bit-Ganzzahl).

int und long in Python2

Python2 hat zwei Integer-Typen, int und long.

Sie können den maximalen Wert von int mit sys.maxint abrufen. Der Mindestwert (der größte negative Wert) ist -sys.maxint-1.

sys.maxint ist mindestens 2**31-1 und in einer 64-Bit-Umgebung 2**63-1.

langer Hut keine Ober- und Untergrenze.

int in Python3 hat keine Obergrenze

int in Python3 entspricht long in Python2, und es gibt keine Ober- und Untergrenze.

Die Konstante sys.maxint wurde entfernt, da der Wert von Ganzzahlen nicht mehr begrenzt ist. sys.maxsize kann jedoch als Integer verwendet werden, der größer ist als jeder praktische Listen- oder Zeichenfolgenindex. Es entspricht der „natürlichen“ Integergröße der Implementierung und ist normalerweise dasselbe wie sys.maxint in verschiedenen Versionen auf derselben Plattform (unter der Annahme derselben Build-Optionen).
Was ist neu in Python 3.0 – Dokumentation zu Python 3.8.4

In Python3 wurde sys.maxint entfernt und sys.maxsize hinzugefügt.

sys.maxsize ist 2**31-1 in einer 32-Bit-Umgebung und 2**63-1 in einer 64-Bit-Umgebung, wie sys.maxint in Python2.

import sys

print(sys.maxsize)
# 9223372036854775807

print(type(sys.maxsize))
# <class 'int'>

print(sys.maxsize == 2**63 - 1)
# True

Konvertiert in Binär- und Hexadezimalzahlen mit bin() und hex() wird sys.maxsize wie folgt wiedergegeben.

print(bin(sys.maxsize))
# 0b111111111111111111111111111111111111111111111111111111111111111

print(hex(sys.maxsize))
# 0x7fffffffffffffff

sys.maxsize ist nicht der maximale Wert von int, und Sie können größere Werte verarbeiten, wenn Arbeitsspeicher verfügbar ist.

i = 10**100

print(i)
# 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

print(i > sys.maxsize)
# True

Bei der Gleitkommazahl float steht inf für unendlich. inf wird als größer als jeder Wert von int aufgestellt.

print(float('inf'))
# inf

print(i > float('inf'))
# False

Siehe den following Artikel über unendlich inf.