Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Anwendungen von Integer-Typen | Numerische Datentypen
C++ Datentypen

book
Anwendungen von Integer-Typen

Wir haben herausgefunden, dass das Zuweisen eines Wertes, der den Bereich von -2.147.483.648 bis 2.147.483.647 überschreitet, keinen Fehler verursacht. Stattdessen wird es zu einem Überlauf führen.

Denken Sie daran

Überlauf tritt auf, wenn eine Berechnung ein Ergebnis liefert, das zu groß ist, um von dem verwendeten Datentyp dargestellt zu werden.

Wenn Sie beispielsweise versuchen, einen Wert zu speichern, der größer ist als der maximal darstellbare Wert für einen ganzzahligen Typ, tritt ein Überlauf auf, und das Ergebnis wird umgebrochen oder abgeschnitten, was zu unerwartetem Verhalten in Ihrem Programm führt.

Dies kann zu kritischen Fehlern in Ihren Programmen führen, daher sollten Sie dies im Hinterkopf behalten. Wir werden im nächsten Kapitel lernen, wie man mit zu großen Zahlen umgeht.

Aufgabe

Swipe to start coding

  1. Korrigiere den Ausdruck, damit er keinen Überlauf mehr verursacht.
  2. Ändere die Reihenfolge der Operationen, teile zuerst jede Zahl durch 2 und addiere sie erst dann.

Lösung

cpp

solution

#include <iostream>

int main()
{
int first = 1502365230;
int second = 1262530350;
// The following code demonstrates a potential issue with integer overflow
// Although the final result will be within the range of an integer
// Adding two large numbers together can cause overflow before the division by 2 is performed
std::cout << first / 2 + second / 2 << std::endl;
}

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
#include <iostream>

int main()
{
int first = 1502365230;
int second = 1262530350;
// The following code demonstrates a potential issue with integer overflow
// Although the final result will be within the range of an integer
// Adding two large numbers together can cause overflow before the division by 2 is performed
std::cout << (first + second) / 2 << std::endl;
}
toggle bottom row
some-alt