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

Метод wrapping_sub

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

Диапазон значений i32 составляет от -2147483648 до 2147483647. При выходе за эти границы значение оборачивается: например, вычитание из минимального значения приводит к максимальному значению.

Синтаксис

i32.wrapping_sub(rhs)

Пример

Давайте выполним обычное вычитание без переполнения:

fn main() { let a: i32 = 10; let b: i32 = 3; let res = a.wrapping_sub(b); println!("{}", res); }

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

7

Пример

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

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

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

2147483647

Пример

Давайте выполним вычитание, приводящее к переполнению сверху:

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

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

-2147483648

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

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