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

Метод wrapping_add

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

Синтаксис

i32.wrapping_add(rhs)

Пример

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

fn main() { let a: i32 = 10; let res = a.wrapping_add(20); println!("{}", res); }

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

30

Пример

Давайте сложим максимальное значение i32 с единицей. При обычном сложении произошло бы переполнение, но wrapping_add выполнит циклический перенос:

fn main() { let a: i32 = i32::MAX; let res = a.wrapping_add(1); println!("{}", res); }

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

-2147483648

Пример

Давайте сложим минимальное значение i32 с минус единицей. Здесь также произойдёт циклический перенос:

fn main() { let a: i32 = i32::MIN; let res = a.wrapping_add(-1); println!("{}", res); }

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

2147483647

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

  • метод wrapping_sub,
    который выполняет вычитание с циклическим переполнением
  • метод wrapping_mul,
    который выполняет умножение с циклическим переполнением
  • метод saturating_add,
    который выполняет сложение с насыщением на границах диапазона
  • метод checked_add,
    который возвращает None при переполнении
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить