Метод wrapping_neg
Метод wrapping_neg возвращает значение,
противоположное исходному числу по знаку, то есть
выполняет операцию -self. Если при этом
происходит переполнение (например, для минимального
значения i32), метод не паникует, а выполняет
циклический перенос значения. Параметров метод не принимает.
Синтаксис
i32.wrapping_neg()
Пример
Давайте получим отрицание положительного числа 5:
fn main()
{
let res = 5i32.wrapping_neg();
println!("{}", res);
}
Результат выполнения кода:
-5
Пример
Давайте получим отрицание отрицательного числа -5:
fn main()
{
let res = (-5i32).wrapping_neg();
println!("{}", res);
}
Результат выполнения кода:
5
Пример
Давайте применим метод к минимальному значению i32,
для которого обычное отрицание вызывает переполнение:
fn main()
{
let res = i32::MIN.wrapping_neg();
println!("{}", res);
}
Результат выполнения кода:
-2147483648
Смотрите также
-
метод
abs,
который возвращает абсолютное значение числа -
метод
wrapping_sub,
который выполняет вычитание с циклическим переполнением -
метод
wrapping_add,
который выполняет сложение с циклическим переполнением -
метод
overflowing_add,
который возвращает результат сложения и флаг переполнения