Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist ein Integer-Overflow?

Beitrags-Cover: Was ist ein Integer-Overflow?
InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Sie haben einen Zähler, der nur bis zu einer bestimmten Zahl zählen kann. Zum Beispiel ein Taschenrechner, der maximal 999 anzeigt. Wenn Sie versuchen, 1 zu 999 hinzuzufügen, kann er 1000 nicht anzeigen - die Ziffern "überlaufen" (overflow) einfach und der Rechner zeigt etwas ganz anderes an, zum Beispiel 000.
In der Programmierung wird dieser Effekt integer overflow (Überlauf von Ganzzahlen) genannt.
Dies geschieht, wenn eine Zahl größer wird als der maximale Wert, den der gewählte Variablentyp speichern kann.
Wenn eine int-Variable beispielsweise Zahlen bis 2.147.483.647 speichern kann, wird das Hinzufügen von 1 ihren Wert… negativ machen!

Warum 2.147.483.647 die "Obergrenze" für eine 32-Bit-Zahl ist

Im Computer werden Zahlen in binärer Form gespeichert (d.h. als Folge von Nullen und Einsen).
"32-Bit" bedeutet, dass zur Speicherung einer Zahl 32 Zellen reserviert sind, und in jeder kann entweder 0 oder 1 sein.
Wenn die Zahl jedoch signed (mit Vorzeichen) ist, ist eine dieser Zellen für das Vorzeichen reserviert:
  • 0 im ersten Bit — positive Zahl,
  • 1 im ersten Bit — negative Zahl.
Das bedeutet, dass für den Betrag der Zahl nur 31 Bit verbleiben.
Maximalwert
Wenn alle 31 Bits (außer dem Vorzeichen) mit Einsen gefüllt sind, erhalten wir die größte mögliche positive Zahl:
1111111111111111111111111111111 (31 Einsen)
Im Dezimalsystem entspricht dies genau 2.147.483.647.
In hexadezimaler (hex) Form wird dies als 0x7FFFFFFF geschrieben:
  • 7 — binär 0111 (d.h. Vorzeichen 0 + drei Einsen),
  • F — binär 1111 (vier Einsen),
  • und so weiter bis zum Ende.
Deshalb treten in Programmen manchmal sehr seltsame Fehler auf, und in der Geschichte gab es sogar ernsthafte Unfälle aufgrund von Überläufen. Es gibt sogar Memes wegen des integer overflow Fehlers, aber das ist nicht genau.

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

Was ist das HEIC-Format und warum ist es eine schlechte Idee, es einfach in .jpg umzubenennen?
15. Jun, 18:17 Uhr

Was ist das HEIC-Format und warum ist es eine schlechte Idee, es einfach in .jpg umzubenennen?

meme code
meme code@memecode
Warum die Wahl des CMS bei der Website-Entwicklung wichtig ist?
29. Jun, 12:34 Uhr

Warum die Wahl des CMS bei der Website-Entwicklung wichtig ist?

meme code
meme code@memecode
Fehler 403 auf der Website: Was bedeutet das und wie behebt man ihn
24. Jul, 23:50 Uhr

Fehler 403 auf der Website: Was bedeutet das und wie behebt man ihn

meme code
meme code@memecode
Was ist Vibe-Coding?
25. Jul, 21:51 Uhr

Was ist Vibe-Coding?

meme code
meme code@memecode
Was ist eine kombinatorische Explosion?
28. Jul, 11:50 Uhr

Was ist eine kombinatorische Explosion?

meme code
meme code@memecode
Was ist ein Gehirnstapel (brain stack)?
28. Jul, 19:37 Uhr

Was ist ein Gehirnstapel (brain stack)?

meme code
meme code@memecode
Was ist eine HAR-Datei (HTTP-Archiv)?
25. Aug, 18:23 Uhr

Was ist eine HAR-Datei (HTTP-Archiv)?

meme code
meme code@memecode
Was ist Bubble Sort (Erklärung des Algorithmus)?
16. Sep, 18:42 Uhr

Was ist Bubble Sort (Erklärung des Algorithmus)?

meme code
meme code@memecode
Was ist exponentielles Wachstum?
16. Sep, 18:57 Uhr

Was ist exponentielles Wachstum?

meme code
meme code@memecode
Was ist faktoriale Komplexität?
16. Sep, 19:03 Uhr

Was ist faktoriale Komplexität?

meme code
meme code@memecode
Was ist NP-Komplexität?
16. Sep, 19:31 Uhr

Was ist NP-Komplexität?

meme code
meme code@memecode
Offset vs Cursor Pagination in Rails: was wählen und warum
24. Sep, 15:22 Uhr

Offset vs Cursor Pagination in Rails: was wählen und warum

meme code
meme code@memecode