0 Daumen
25 Aufrufe

Fr

Hallo,

Habe diese nicht ganz verstanden.

Bedeutet: uVal += 2; // = 1 (kein Überlauf)

das dieser Variabel uVal NUR um 1 vergblob.png

Text erkannt:

mentierung ab.
\begin{tabular}{l|l|l}
\hline Datentyp & Wertebereich (min.) & Formatzeichen \\
\hline Bool (seit C99) & 0 und 1 & \( \% \) \% \\
\hline unsigned char & 0 bis 255 & \\
\hline unsigned short & 0 bis \( 65.535 \) & \%hhu (für Dezimal) \( \% c \) (für Zeichen) \\
\hline unsigned int & 0 bis \( 65.535 \) & \%hu \\
\hline unsigned long & 0 bis \( 4.294 .967 .295 \) & \( \% u \) \\
\hline unsigned long long (seit C99) & 0 bis \( 18.446 .744 .073 .709 .551 .615 \) & \( \% 11 u \) \\
\hline
\end{tabular}
Tabelle \( 3.2 \) Grunddatentypen für vorzeichenlose Ganzzahlen
Überlauf bei "unsignedu-Ganzzahlwerten Bei unsigned-Ganzzahlwerten kann es nicht zu einem undefinierten Verhalten bei einem Überlauf kommen. Wenn hier der Wertbereich überschritten wird, wird mit einer sogenannten Modulo-Arithmetik weitergerechnet. Addieren Sie also zu einem maximalen unsignedGanzzahltypen 2 hinzu, wird mit 1 weitergerechnet. Ein Beispiel:
unsigned int UVal = UINT_MAX; // UINT MAX enthält max. Wert uVal \( +=2 ; \quad / /=1 \) (kein Überlauf)
Ty

ößert?




Code:

von

1 Antwort

0 Daumen

Nach uVal += 2 hat die Variable uVal den Wert 1.

von 3,5 k

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community