Swift: Overflow Operators (Операторы переполнения)

Основное отличие от C — арифметически операции в Swift выполняются без переполнения, чтобы переполнение было, — необходимо перед оператором поставить знак амперсанда & (&+ к примеру)
Т.е. по умолчанию при переполнении swift выкидывает ошибку и выполнение программы прерывается.

Чтобы избежать ошибки надо использовать операторы переполнения
— сложение &+
— вычитание &-
— умножение &*

Переполнение может случиться как в положительном так и в отрицательном направлении для беззнаковых чисел.

_11111111
 &+
_00000001
———
100000000 (0)
Еденица помеченная жирным — бит который вышел за пределы UInt8, и была отброшена

Переполнение в обратном направлении

Так же переполнение бывает и у знаковых чисел тоже, т.к. все операции сложения и вычитания с учетом формата — производятся тем же способом как и на беззнаковых

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *