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

Метод overflowing_add

Метод overflowing_add выполняет сложение двух чисел типа i32 и возвращает кортеж из двух элементов: результата сложения и логического значения, указывающего, произошло ли переполнение. Параметром метод принимает число, которое нужно прибавить к текущему значению. Если переполнения не было, второй элемент кортежа равен false, а результат совпадает с обычным сложением. Если переполнение произошло, второй элемент равен true, а результат представляет собой значение, полученное с учётом циклического переноса (wrapping).

Синтаксис

i32.overflowing_add(rhs)

Пример

Давайте сложим числа 100 и 200, чтобы убедиться, что переполнения не происходит:

fn main() { let res = 100i32.overflowing_add(200); println!("{:?}", res); }

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

(300, false)

Пример

Давайте сложим максимальное значение i32 и число 1, чтобы вызвать переполнение:

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

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

(-2147483648, true)

Пример

Давайте сложим минимальное значение i32 и число -1, чтобы вызвать переполнение в отрицательную сторону:

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

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

(2147483647, true)

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

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