РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1220 of 1245 menu

Метод wrapping_add

Метод wrapping_add выполняет сложение двух чисел с переполнением. Если результат сложения выходит за пределы диапазона типа, он «заворачивается» по модулю разрядности. Параметром метод принимает число, которое нужно прибавить к текущему значению.

В отличие от обычного оператора +, который в режиме отладки вызывает панику при переполнении, метод wrapping_add гарантированно возвращает результат без паники.

Синтаксис

value.wrapping_add(other)

Пример

Давайте сложим два числа, которые не вызывают переполнение:

fn main() { let res = 100u8.wrapping_add(50); println!("{}", res); }

Результат выполнения кода:

150

Пример

Давайте сложим два числа типа u8, которые вызывают переполнение. Максимальное значение u8 равно 255:

fn main() { let res = 250u8.wrapping_add(10); println!("{}", res); }

Результат выполнения кода:

4

Переполнение «завернуло» результат: 250 + 10 = 260, а 260 - 256 = 4.

Пример

Давайте сложим отрицательное и положительное числа типа i8:

fn main() { let res = (-100i8).wrapping_add(50); println!("{}", res); }

Результат выполнения кода:

-50

Смотрите также

  • метод wrapping_add,
    который выполняет сложение с переполнением
  • метод add,
    который выполняет сложение указателей
  • метод sub,
    который выполняет вычитание указателей
  • метод offset,
    который смещает указатель на заданное число элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить