Курс по Raku / Напреднали / Повече за вградените типове / Нативни типове 🆕 / Exercises / Обвиване
Решение: Обвиване
Ето едно възможно решение на задачата.
Код
my uint8 $u = 250;
$u += 10;
say $u;
my uint8 $v = 0;
$v--;
say $v;🦋 Можете да намерите изходния код във файла wrap-around.raku.
Резултат
4
255Коментари
uint8обхваща стойности от0до255, което е 256 различни стойности. Аритметиката върху него ефективно се извършва по модул 256.250 + 10би дало260, което не се побира. Стойността се обръща, попадайки на260 - 256 = 4след началото. Така че препълването не е ограничено само до преминаване на горната граница с единица — всеки резултат извън диапазона се връща обратно в него.В обратната посока също се препълва: намаляването на
0не може да даде-1при беззнаков тип, така че стойността се обръща до максимума,255.
Навигация в курса
← Обвиване | Нативен масив →