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

Метод saturating_mul

Метод saturating_mul выполняет умножение двух чисел типа i32 с насыщением. Это означает, что если результат умножения выходит за пределы допустимого диапазона значений типа i32, метод возвращает граничное значение: i32::MAX при переполнении в положительную сторону или i32::MIN при переполнении в отрицательную сторону. Параметром метод принимает второе число, на которое нужно умножить текущее значение.

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

Синтаксис

i32.saturating_mul(rhs)

Пример

Давайте умножим число 1000 на число 2000, результат которого 2000000 помещается в диапазон типа i32:

fn main() { let a: i32 = 1000; let b: i32 = 2000; let res = a.saturating_mul(b); println!("{}", res); }

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

2000000

Пример

Давайте умножим число i32::MAX на число 2. Результат умножения превышает максимальное значение типа i32, поэтому метод вернёт i32::MAX:

fn main() { let a: i32 = i32::MAX; let b: i32 = 2; let res = a.saturating_mul(b); println!("{}", res); }

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

2147483647

Пример

Давайте умножим число i32::MIN на число 2. Результат умножения выходит за минимальное значение типа i32, поэтому метод вернёт i32::MIN:

fn main() { let a: i32 = i32::MIN; let b: i32 = 2; let res = a.saturating_mul(b); println!("{}", res); }

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

-2147483648

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

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