Raku-Kurs / Fortgeschritten / Mehr über eingebaute Typen / Native Typen / Exercises / Überlauf
Lösung: Überlauf
Hier ist eine mögliche Lösung.
Code
my uint8 $u = 250;
$u += 10;
say $u;
my uint8 $v = 0;
$v--;
say $v;🦋 Du findest den Quellcode in der Datei wrap-around.raku.
Ausgabe
4
255Kommentare
Ein
uint8reicht von0bis255, das sind 256 verschiedene Werte. Arithmetik damit wird effektiv modulo 256 durchgeführt.250 + 10wäre260, was nicht hineinpasst. Es gibt einen Umlauf und landet bei260 - 256 = 4oberhalb des unteren Endes. Der Überlauf ist also nicht darauf beschränkt, das obere Ende um Eins zu überschreiten — jedes Ergebnis außerhalb des Bereichs wird zurückgefaltet.In die andere Richtung gibt es ebenfalls einen Überlauf: Das Dekrementieren von
0kann bei einem vorzeichenlosen Typ nicht-1ergeben, also springt es zum Maximum,255.
Kursnavigation
← Überlauf | Ein natives Array →