Primitive Type i128
1.26.0 ·Expand description
128 位带符号整数类型。
Implementations§
source§impl i128
impl i128
1.0.0 · sourcepub fn from_str_radix(src: &str, radix: u32) -> Result<i128, ParseIntError>
pub fn from_str_radix(src: &str, radix: u32) -> Result<i128, ParseIntError>
1.0.0 (const: 1.32.0) · sourcepub const fn count_ones(self) -> u32
pub const fn count_ones(self) -> u32
1.0.0 (const: 1.32.0) · sourcepub const fn count_zeros(self) -> u32
pub const fn count_zeros(self) -> u32
1.0.0 (const: 1.32.0) · sourcepub const fn leading_zeros(self) -> u32
pub const fn leading_zeros(self) -> u32
1.0.0 (const: 1.32.0) · sourcepub const fn trailing_zeros(self) -> u32
pub const fn trailing_zeros(self) -> u32
1.46.0 (const: 1.46.0) · sourcepub const fn leading_ones(self) -> u32
pub const fn leading_ones(self) -> u32
1.46.0 (const: 1.46.0) · sourcepub const fn trailing_ones(self) -> u32
pub const fn trailing_ones(self) -> u32
1.0.0 (const: 1.32.0) · sourcepub const fn rotate_left(self, n: u32) -> i128
pub const fn rotate_left(self, n: u32) -> i128
1.0.0 (const: 1.32.0) · sourcepub const fn rotate_right(self, n: u32) -> i128
pub const fn rotate_right(self, n: u32) -> i128
1.0.0 (const: 1.32.0) · sourcepub const fn swap_bytes(self) -> i128
pub const fn swap_bytes(self) -> i128
1.37.0 (const: 1.37.0) · sourcepub const fn reverse_bits(self) -> i128
pub const fn reverse_bits(self) -> i128
1.0.0 (const: 1.47.0) · sourcepub const fn checked_add(self, rhs: i128) -> Option<i128>
pub const fn checked_add(self, rhs: i128) -> Option<i128>
const: unstable · sourcepub unsafe fn unchecked_add(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (unchecked_math
#85122)
pub unsafe fn unchecked_add(self, rhs: i128) -> i128
unchecked_math
#85122)未经检查的整数加法。
假设不会发生溢出,则计算 self + rhs
。
Safety
当以下情况时,这导致未定义的行为
self + rhs > i128::MAX
or self + rhs < i128::MIN
,
即当 checked_add
将返回 None
时。
1.66.0 (const: 1.66.0) · sourcepub const fn checked_add_unsigned(self, rhs: u128) -> Option<i128>
pub const fn checked_add_unsigned(self, rhs: u128) -> Option<i128>
1.0.0 (const: 1.47.0) · sourcepub const fn checked_sub(self, rhs: i128) -> Option<i128>
pub const fn checked_sub(self, rhs: i128) -> Option<i128>
const: unstable · sourcepub unsafe fn unchecked_sub(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (unchecked_math
#85122)
pub unsafe fn unchecked_sub(self, rhs: i128) -> i128
unchecked_math
#85122)未经检查的整数减法。
假设不会发生溢出,则计算 self - rhs
。
Safety
当以下情况时,这导致未定义的行为
self - rhs > i128::MAX
or self - rhs < i128::MIN
,
即当 checked_sub
将返回 None
时。
1.66.0 (const: 1.66.0) · sourcepub const fn checked_sub_unsigned(self, rhs: u128) -> Option<i128>
pub const fn checked_sub_unsigned(self, rhs: u128) -> Option<i128>
1.0.0 (const: 1.47.0) · sourcepub const fn checked_mul(self, rhs: i128) -> Option<i128>
pub const fn checked_mul(self, rhs: i128) -> Option<i128>
const: unstable · sourcepub unsafe fn unchecked_mul(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (unchecked_math
#85122)
pub unsafe fn unchecked_mul(self, rhs: i128) -> i128
unchecked_math
#85122)未经检查的整数乘法。
假设不会发生溢出,则计算 self * rhs
。
Safety
当以下情况时,这导致未定义的行为
self * rhs > i128::MAX
or self * rhs < i128::MIN
,
即当 checked_mul
将返回 None
时。
1.0.0 (const: 1.52.0) · sourcepub const fn checked_div(self, rhs: i128) -> Option<i128>
pub const fn checked_div(self, rhs: i128) -> Option<i128>
1.38.0 (const: 1.52.0) · sourcepub const fn checked_div_euclid(self, rhs: i128) -> Option<i128>
pub const fn checked_div_euclid(self, rhs: i128) -> Option<i128>
1.7.0 (const: 1.52.0) · sourcepub const fn checked_rem(self, rhs: i128) -> Option<i128>
pub const fn checked_rem(self, rhs: i128) -> Option<i128>
1.38.0 (const: 1.52.0) · sourcepub const fn checked_rem_euclid(self, rhs: i128) -> Option<i128>
pub const fn checked_rem_euclid(self, rhs: i128) -> Option<i128>
1.7.0 (const: 1.47.0) · sourcepub const fn checked_neg(self) -> Option<i128>
pub const fn checked_neg(self) -> Option<i128>
1.7.0 (const: 1.47.0) · sourcepub const fn checked_shl(self, rhs: u32) -> Option<i128>
pub const fn checked_shl(self, rhs: u32) -> Option<i128>
const: unstable · sourcepub unsafe fn unchecked_shl(self, rhs: u32) -> i128
🔬This is a nightly-only experimental API. (unchecked_math
#85122)
pub unsafe fn unchecked_shl(self, rhs: u32) -> i128
unchecked_math
#85122)未检查的左移。
计算 self << rhs
,假设 rhs
小于 self
中的位数。
Safety
如果 rhs
大于或等于 self
中的位数,则会导致未定义的行为,即
当 checked_shl
返回 None
时。
1.7.0 (const: 1.47.0) · sourcepub const fn checked_shr(self, rhs: u32) -> Option<i128>
pub const fn checked_shr(self, rhs: u32) -> Option<i128>
const: unstable · sourcepub unsafe fn unchecked_shr(self, rhs: u32) -> i128
🔬This is a nightly-only experimental API. (unchecked_math
#85122)
pub unsafe fn unchecked_shr(self, rhs: u32) -> i128
unchecked_math
#85122)未检查右移。
计算 self >> rhs
,假设 rhs
小于 self
中的位数。
Safety
如果 rhs
大于或等于 self
中的位数,则会导致未定义的行为,即
当 checked_shr
返回 None
时。
1.13.0 (const: 1.47.0) · sourcepub const fn checked_abs(self) -> Option<i128>
pub const fn checked_abs(self) -> Option<i128>
1.34.0 (const: 1.50.0) · sourcepub const fn checked_pow(self, exp: u32) -> Option<i128>
pub const fn checked_pow(self, exp: u32) -> Option<i128>
1.0.0 (const: 1.47.0) · sourcepub const fn saturating_add(self, rhs: i128) -> i128
pub const fn saturating_add(self, rhs: i128) -> i128
1.66.0 (const: 1.66.0) · sourcepub const fn saturating_add_unsigned(self, rhs: u128) -> i128
pub const fn saturating_add_unsigned(self, rhs: u128) -> i128
1.0.0 (const: 1.47.0) · sourcepub const fn saturating_sub(self, rhs: i128) -> i128
pub const fn saturating_sub(self, rhs: i128) -> i128
1.66.0 (const: 1.66.0) · sourcepub const fn saturating_sub_unsigned(self, rhs: u128) -> i128
pub const fn saturating_sub_unsigned(self, rhs: u128) -> i128
1.45.0 (const: 1.47.0) · sourcepub const fn saturating_neg(self) -> i128
pub const fn saturating_neg(self) -> i128
1.45.0 (const: 1.47.0) · sourcepub const fn saturating_abs(self) -> i128
pub const fn saturating_abs(self) -> i128
1.7.0 (const: 1.47.0) · sourcepub const fn saturating_mul(self, rhs: i128) -> i128
pub const fn saturating_mul(self, rhs: i128) -> i128
1.58.0 (const: 1.58.0) · sourcepub const fn saturating_div(self, rhs: i128) -> i128
pub const fn saturating_div(self, rhs: i128) -> i128
1.34.0 (const: 1.50.0) · sourcepub const fn saturating_pow(self, exp: u32) -> i128
pub const fn saturating_pow(self, exp: u32) -> i128
1.0.0 (const: 1.32.0) · sourcepub const fn wrapping_add(self, rhs: i128) -> i128
pub const fn wrapping_add(self, rhs: i128) -> i128
1.66.0 (const: 1.66.0) · sourcepub const fn wrapping_add_unsigned(self, rhs: u128) -> i128
pub const fn wrapping_add_unsigned(self, rhs: u128) -> i128
1.0.0 (const: 1.32.0) · sourcepub const fn wrapping_sub(self, rhs: i128) -> i128
pub const fn wrapping_sub(self, rhs: i128) -> i128
1.66.0 (const: 1.66.0) · sourcepub const fn wrapping_sub_unsigned(self, rhs: u128) -> i128
pub const fn wrapping_sub_unsigned(self, rhs: u128) -> i128
1.0.0 (const: 1.32.0) · sourcepub const fn wrapping_mul(self, rhs: i128) -> i128
pub const fn wrapping_mul(self, rhs: i128) -> i128
1.2.0 (const: 1.52.0) · sourcepub const fn wrapping_div(self, rhs: i128) -> i128
pub const fn wrapping_div(self, rhs: i128) -> i128
1.38.0 (const: 1.52.0) · sourcepub const fn wrapping_div_euclid(self, rhs: i128) -> i128
pub const fn wrapping_div_euclid(self, rhs: i128) -> i128
1.2.0 (const: 1.52.0) · sourcepub const fn wrapping_rem(self, rhs: i128) -> i128
pub const fn wrapping_rem(self, rhs: i128) -> i128
1.38.0 (const: 1.52.0) · sourcepub const fn wrapping_rem_euclid(self, rhs: i128) -> i128
pub const fn wrapping_rem_euclid(self, rhs: i128) -> i128
1.2.0 (const: 1.32.0) · sourcepub const fn wrapping_neg(self) -> i128
pub const fn wrapping_neg(self) -> i128
1.2.0 (const: 1.32.0) · sourcepub const fn wrapping_shl(self, rhs: u32) -> i128
pub const fn wrapping_shl(self, rhs: u32) -> i128
无 Panic - 按位左移; 产生 self << mask(rhs)
,其中 mask
删除 rhs
的所有高位,这些高位将导致移位超过该类型的位宽。
注意,这与左旋不同; 环绕左移的 RHS 限于该类型的范围,而不是从 LHS 移出的位返回到另一端。
所有原始整数类型都实现了 rotate_left
函数,而您可能想要的是 rotate_left
函数。
Examples
基本用法:
assert_eq!((-1i128).wrapping_shl(7), -128);
assert_eq!((-1i128).wrapping_shl(128), -1);
Run1.2.0 (const: 1.32.0) · sourcepub const fn wrapping_shr(self, rhs: u32) -> i128
pub const fn wrapping_shr(self, rhs: u32) -> i128
无 Panic - 按位右移; 产生 self >> mask(rhs)
,其中 mask
删除 rhs
的所有高位,这些高位将导致移位超过该类型的位宽。
注意,这与右旋转不同。换行右移的 RHS 限于类型的范围,而不是从 LHS 移出的位返回到另一端。
所有原始整数类型都实现了 rotate_right
函数,而您可能想要的是 rotate_right
函数。
Examples
基本用法:
assert_eq!((-128i128).wrapping_shr(7), -1);
assert_eq!((-128i16).wrapping_shr(64), -128);
Run1.13.0 (const: 1.32.0) · sourcepub const fn wrapping_abs(self) -> i128
pub const fn wrapping_abs(self) -> i128
包装 (modular) 绝对值。计算 self.abs()
,在类型的边界处回绕。
可能发生这种换行的唯一情况是,当类型取负的最小值的绝对值时; 这是一个太大的正值,无法在类型中表示。
在这种情况下,此函数将返回 MIN
本身。
Examples
基本用法:
assert_eq!(100i128.wrapping_abs(), 100);
assert_eq!((-100i128).wrapping_abs(), 100);
assert_eq!(i128::MIN.wrapping_abs(), i128::MIN);
assert_eq!((-128i8).wrapping_abs() as u8, 128);
Run1.51.0 (const: 1.51.0) · sourcepub const fn unsigned_abs(self) -> u128
pub const fn unsigned_abs(self) -> u128
1.34.0 (const: 1.50.0) · sourcepub const fn wrapping_pow(self, exp: u32) -> i128
pub const fn wrapping_pow(self, exp: u32) -> i128
1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_add(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_add(self, rhs: i128) -> (i128, bool)
const: unstable · sourcepub fn carrying_add(self, rhs: i128, carry: bool) -> (i128, bool)
🔬This is a nightly-only experimental API. (bigint_helper_methods
#85532)
pub fn carrying_add(self, rhs: i128, carry: bool) -> (i128, bool)
bigint_helper_methods
#85532)计算 self
+ rhs
+ carry
并检查溢出。
执行两个整数操作数和一个进位位的 “ternary addition”,并返回一个总和元组以及一个指示是否会发生算术溢出的布尔值。 溢出时,返回包装后的值。
这允许将多个加法链接在一起以创建更广泛的加法,并且对于 bignum 加法很有用。 这种方法应该只用于最重要的词; 对于不太重要的词,无符号方法
u128::carrying_add
应该使用。
此方法返回的输出布尔值不是进位标志,不应该添加到更重要的词中。
如果输入进位为假,则此方法等同于 overflowing_add
。
Examples
#![feature(bigint_helper_methods)]
// 只有最重要的字被签名。
// 10 MAX (a = 10 × 2^128 + 2^128 - 1)
// + -5 9 (b = -5 × 2^128 + 9)
// ---------
// 6 8 (sum = 6 × 2^128 + 8)
let (a1, a0): (i128, u128) = (10, u128::MAX);
let (b1, b0): (i128, u128) = (-5, 9);
let carry0 = false;
// u128::carrying_add for the less significant words
let (sum0, carry1) = a0.carrying_add(b0, carry0);
assert_eq!(carry1, true);
// i128::carrying_add for the most significant word
let (sum1, overflow) = a1.carrying_add(b1, carry1);
assert_eq!(overflow, false);
assert_eq!((sum1, sum0), (6, 8));
Run1.66.0 (const: 1.66.0) · sourcepub const fn overflowing_add_unsigned(self, rhs: u128) -> (i128, bool)
pub const fn overflowing_add_unsigned(self, rhs: u128) -> (i128, bool)
使用无符号 rhs
计算 self
+ rhs
返回一个加法元组以及一个布尔值,该布尔值指示是否会发生算术溢出。 如果将发生溢出,则返回包装的值。
Examples
基本用法:
assert_eq!(1i128.overflowing_add_unsigned(2), (3, false));
assert_eq!((i128::MIN).overflowing_add_unsigned(u128::MAX), (i128::MAX, false));
assert_eq!((i128::MAX - 2).overflowing_add_unsigned(3), (i128::MIN, true));
Run1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_sub(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_sub(self, rhs: i128) -> (i128, bool)
const: unstable · sourcepub fn borrowing_sub(self, rhs: i128, borrow: bool) -> (i128, bool)
🔬This is a nightly-only experimental API. (bigint_helper_methods
#85532)
pub fn borrowing_sub(self, rhs: i128, borrow: bool) -> (i128, bool)
bigint_helper_methods
#85532)计算 self
− rhs
− borrow
并检查溢出。
通过从 self
中减去一个整数操作数和一个借用输入位来执行 “ternary subtraction”,并返回一个差元组以及一个指示是否会发生算术溢出的布尔值。
溢出时,返回包装后的值。
这允许将多个减法链接在一起以创建更广泛的减法,并且对于 bignum 减法很有用。 这种方法应该只用于最重要的词; 对于不太重要的词,无符号方法
u128::borrowing_sub
应该使用。
此方法返回的输出布尔值不是借用标志,应该不从更重要的词中减去。
如果输入借用为 false,该方法等同于 overflowing_sub
。
Examples
#![feature(bigint_helper_methods)]
// 只有最重要的字被签名。
// 6 8 (a = 6 × 2^128 + 8)
// - -5 9 (b = -5 × 2^128 + 9)
// ---------
// 10 MAX (diff = 10 × 2^128 + 2^128 - 1)
let (a1, a0): (i128, u128) = (6, 8);
let (b1, b0): (i128, u128) = (-5, 9);
let borrow0 = false;
// u128::borrowing_sub for the less significant words
let (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);
assert_eq!(borrow1, true);
// i128::borrowing_sub for the most significant word
let (diff1, overflow) = a1.borrowing_sub(b1, borrow1);
assert_eq!(overflow, false);
assert_eq!((diff1, diff0), (10, u128::MAX));
Run1.66.0 (const: 1.66.0) · sourcepub const fn overflowing_sub_unsigned(self, rhs: u128) -> (i128, bool)
pub const fn overflowing_sub_unsigned(self, rhs: u128) -> (i128, bool)
使用无符号 rhs
计算 self
-rhs
返回一个减法的元组以及一个布尔值,该布尔值指示是否会发生算术溢出。 如果将发生溢出,则返回包装的值。
Examples
基本用法:
assert_eq!(1i128.overflowing_sub_unsigned(2), (-1, false));
assert_eq!((i128::MAX).overflowing_sub_unsigned(u128::MAX), (i128::MIN, false));
assert_eq!((i128::MIN + 2).overflowing_sub_unsigned(3), (i128::MAX, true));
Run1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_mul(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_mul(self, rhs: i128) -> (i128, bool)
1.7.0 (const: 1.52.0) · sourcepub const fn overflowing_div(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_div(self, rhs: i128) -> (i128, bool)
1.38.0 (const: 1.52.0) · sourcepub const fn overflowing_div_euclid(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_div_euclid(self, rhs: i128) -> (i128, bool)
1.7.0 (const: 1.52.0) · sourcepub const fn overflowing_rem(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_rem(self, rhs: i128) -> (i128, bool)
1.38.0 (const: 1.52.0) · sourcepub const fn overflowing_rem_euclid(self, rhs: i128) -> (i128, bool)
pub const fn overflowing_rem_euclid(self, rhs: i128) -> (i128, bool)
1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_neg(self) -> (i128, bool)
pub const fn overflowing_neg(self) -> (i128, bool)
1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_shl(self, rhs: u32) -> (i128, bool)
pub const fn overflowing_shl(self, rhs: u32) -> (i128, bool)
1.7.0 (const: 1.32.0) · sourcepub const fn overflowing_shr(self, rhs: u32) -> (i128, bool)
pub const fn overflowing_shr(self, rhs: u32) -> (i128, bool)
1.13.0 (const: 1.32.0) · sourcepub const fn overflowing_abs(self) -> (i128, bool)
pub const fn overflowing_abs(self) -> (i128, bool)
计算 self
的绝对值。
返回 self 的绝对版本的元组以及一个布尔值,该布尔值指示是否发生了溢出。 如果 self 是最小值 (e.g., i128::MIN for values of type i128), 然后将再次返回最小值,并在发生溢出时返回 true。
Examples
基本用法:
assert_eq!(10i128.overflowing_abs(), (10, false));
assert_eq!((-10i128).overflowing_abs(), (10, false));
assert_eq!((i128::MIN).overflowing_abs(), (i128::MIN, true));
Run1.34.0 (const: 1.50.0) · sourcepub const fn overflowing_pow(self, exp: u32) -> (i128, bool)
pub const fn overflowing_pow(self, exp: u32) -> (i128, bool)
1.38.0 (const: 1.52.0) · sourcepub const fn div_euclid(self, rhs: i128) -> i128
pub const fn div_euclid(self, rhs: i128) -> i128
计算 self
的欧几里得除以 rhs
的商。
这将计算整数 q
,使得 self = q * rhs + r
、r = self.rem_euclid(rhs)
和 0 <= r < abs(rhs)
。
换句话说,结果是 self / rhs
舍入为整数 q
,使得 self >= q * rhs
。
如果为 self > 0
,则等于舍入为零 (Rust 中的默认值) ;
如果为 self < 0
,则等于朝 +/- 无限取整。
Panics
如果 rhs
为 0 或除法导致溢出,则该函数将为 panic。
Examples
基本用法:
let a: i128 = 7; // or any other integer type
let b = 4;
assert_eq!(a.div_euclid(b), 1); // 7 >= 4 * 1
assert_eq!(a.div_euclid(-b), -1); // 7 >= -4 * -1
assert_eq!((-a).div_euclid(b), -2); // -7 >= 4 * -2
assert_eq!((-a).div_euclid(-b), 2); // -7 >= -4 * 2
Run1.38.0 (const: 1.52.0) · sourcepub const fn rem_euclid(self, rhs: i128) -> i128
pub const fn rem_euclid(self, rhs: i128) -> i128
计算 self (mod rhs)
的最小非负余数。
就像通过欧几里得除法算法一样 - 给定 r = self.rem_euclid(rhs)
,self = rhs * self.div_euclid(rhs) + r
和 0 <= r < abs(rhs)
。
Panics
如果 rhs
为 0 或除法导致溢出,则该函数将为 panic。
Examples
基本用法:
let a: i128 = 7; // or any other integer type
let b = 4;
assert_eq!(a.rem_euclid(b), 3);
assert_eq!((-a).rem_euclid(b), 1);
assert_eq!(a.rem_euclid(-b), 3);
assert_eq!((-a).rem_euclid(-b), 1);
Runsourcepub const fn div_floor(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (int_roundings
#88581)
pub const fn div_floor(self, rhs: i128) -> i128
int_roundings
#88581)计算 self
和 rhs
的商,将结果四舍五入到负无穷大。
Panics
如果 rhs
为零,这个函数将会 panic。
溢出行为
溢出时,如果启用溢出检查 (默认在调试模式下),此函数将 panic,如果禁用溢出检查 (默认在,生产模式,下),则返回。
Examples
基本用法:
#![feature(int_roundings)]
let a: i128 = 8;
let b = 3;
assert_eq!(a.div_floor(b), 2);
assert_eq!(a.div_floor(-b), -3);
assert_eq!((-a).div_floor(b), -3);
assert_eq!((-a).div_floor(-b), 2);
Runsourcepub const fn div_ceil(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (int_roundings
#88581)
pub const fn div_ceil(self, rhs: i128) -> i128
int_roundings
#88581)计算 self
和 rhs
的商,将结果四舍五入到正无穷大。
Panics
如果 rhs
为零,这个函数将会 panic。
溢出行为
溢出时,如果启用溢出检查 (默认在调试模式下),此函数将 panic,如果禁用溢出检查 (默认在,生产模式,下),则返回。
Examples
基本用法:
#![feature(int_roundings)]
let a: i128 = 8;
let b = 3;
assert_eq!(a.div_ceil(b), 3);
assert_eq!(a.div_ceil(-b), -2);
assert_eq!((-a).div_ceil(b), -2);
assert_eq!((-a).div_ceil(-b), 3);
Runsourcepub const fn next_multiple_of(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (int_roundings
#88581)
pub const fn next_multiple_of(self, rhs: i128) -> i128
int_roundings
#88581)如果 rhs
为正数,则计算大于或等于 self
的最小值,即 rhs
的倍数。
如果 rhs
为负数,则计算小于或等于 rhs
倍数的 self
的最大值。
Panics
如果 rhs
为零,这个函数将会 panic。
溢出行为
溢出时,如果启用溢出检查 (默认在调试模式下),此函数将 panic,如果禁用溢出检查 (默认在,生产模式,下),则返回。
Examples
基本用法:
#![feature(int_roundings)]
assert_eq!(16_i128.next_multiple_of(8), 16);
assert_eq!(23_i128.next_multiple_of(8), 24);
assert_eq!(16_i128.next_multiple_of(-8), 16);
assert_eq!(23_i128.next_multiple_of(-8), 16);
assert_eq!((-16_i128).next_multiple_of(8), -16);
assert_eq!((-23_i128).next_multiple_of(8), -16);
assert_eq!((-16_i128).next_multiple_of(-8), -16);
assert_eq!((-23_i128).next_multiple_of(-8), -24);
Runsourcepub const fn checked_next_multiple_of(self, rhs: i128) -> Option<i128>
🔬This is a nightly-only experimental API. (int_roundings
#88581)
pub const fn checked_next_multiple_of(self, rhs: i128) -> Option<i128>
int_roundings
#88581)如果 rhs
为正数,则计算大于或等于 self
的最小值,即 rhs
的倍数。
如果 rhs
为负数,则计算小于或等于 rhs
倍数的 self
的最大值。
如果 rhs
为零,则返回 None
,否则操作会导致溢出。
Examples
基本用法:
#![feature(int_roundings)]
assert_eq!(16_i128.checked_next_multiple_of(8), Some(16));
assert_eq!(23_i128.checked_next_multiple_of(8), Some(24));
assert_eq!(16_i128.checked_next_multiple_of(-8), Some(16));
assert_eq!(23_i128.checked_next_multiple_of(-8), Some(16));
assert_eq!((-16_i128).checked_next_multiple_of(8), Some(-16));
assert_eq!((-23_i128).checked_next_multiple_of(8), Some(-16));
assert_eq!((-16_i128).checked_next_multiple_of(-8), Some(-16));
assert_eq!((-23_i128).checked_next_multiple_of(-8), Some(-24));
assert_eq!(1_i128.checked_next_multiple_of(0), None);
assert_eq!(i128::MAX.checked_next_multiple_of(2), None);
Runconst: unstable · sourcepub fn midpoint(self, rhs: i128) -> i128
🔬This is a nightly-only experimental API. (num_midpoint
#110840)
pub fn midpoint(self, rhs: i128) -> i128
num_midpoint
#110840)1.67.0 (const: 1.67.0) · sourcepub const fn checked_ilog(self, base: i128) -> Option<u32>
pub const fn checked_ilog(self, base: i128) -> Option<u32>
1.67.0 (const: 1.67.0) · sourcepub const fn checked_ilog2(self) -> Option<u32>
pub const fn checked_ilog2(self) -> Option<u32>
1.67.0 (const: 1.67.0) · sourcepub const fn checked_ilog10(self) -> Option<u32>
pub const fn checked_ilog10(self) -> Option<u32>
1.60.0 (const: 1.60.0) · sourcepub const fn abs_diff(self, other: i128) -> u128
pub const fn abs_diff(self, other: i128) -> u128
计算 self
和 other
之间的绝对差。
这个函数总是通过返回一个无符号整数来返回没有溢出或 panics 的正确答案。
Examples
基本用法:
assert_eq!(100i128.abs_diff(80), 20u128);
assert_eq!(100i128.abs_diff(110), 10u128);
assert_eq!((-100i128).abs_diff(80), 180u128);
assert_eq!((-100i128).abs_diff(-120), 20u128);
assert_eq!(i128::MIN.abs_diff(i128::MAX), u128::MAX);
Run1.0.0 (const: 1.32.0) · sourcepub const fn is_positive(self) -> bool
pub const fn is_positive(self) -> bool
1.0.0 (const: 1.32.0) · sourcepub const fn is_negative(self) -> bool
pub const fn is_negative(self) -> bool
1.32.0 (const: 1.44.0) · sourcepub const fn to_be_bytes(self) -> [u8; 16]
pub const fn to_be_bytes(self) -> [u8; 16]
1.32.0 (const: 1.44.0) · sourcepub const fn to_le_bytes(self) -> [u8; 16]
pub const fn to_le_bytes(self) -> [u8; 16]
1.32.0 (const: 1.44.0) · sourcepub const fn to_ne_bytes(self) -> [u8; 16]
pub const fn to_ne_bytes(self) -> [u8; 16]
将此整数的内存表示作为本机字节顺序的字节数组返回。
由于使用了目标平台的原生字节序,因此,可移植代码应酌情使用 to_be_bytes
或 to_le_bytes
。
Examples
let bytes = 0x12345678901234567890123456789012i128.to_ne_bytes();
assert_eq!(
bytes,
if cfg!(target_endian = "big") {
[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]
} else {
[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]
}
);
Run1.32.0 (const: 1.44.0) · sourcepub const fn from_be_bytes(bytes: [u8; 16]) -> i128
pub const fn from_be_bytes(bytes: [u8; 16]) -> i128
从其表示形式以 big endian 的字节数组形式创建一个整数值。
Examples
let value = i128::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]);
assert_eq!(value, 0x12345678901234567890123456789012);
Run从切片而不是数组开始时,可以使用容易出错的转换 API:
fn read_be_i128(input: &mut &[u8]) -> i128 {
let (int_bytes, rest) = input.split_at(std::mem::size_of::<i128>());
*input = rest;
i128::from_be_bytes(int_bytes.try_into().unwrap())
}
Run1.32.0 (const: 1.44.0) · sourcepub const fn from_le_bytes(bytes: [u8; 16]) -> i128
pub const fn from_le_bytes(bytes: [u8; 16]) -> i128
从它的表示形式以 little endian 的字节数组形式创建一个整数值。
Examples
let value = i128::from_le_bytes([0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);
assert_eq!(value, 0x12345678901234567890123456789012);
Run从切片而不是数组开始时,可以使用容易出错的转换 API:
fn read_le_i128(input: &mut &[u8]) -> i128 {
let (int_bytes, rest) = input.split_at(std::mem::size_of::<i128>());
*input = rest;
i128::from_le_bytes(int_bytes.try_into().unwrap())
}
Run1.32.0 (const: 1.44.0) · sourcepub const fn from_ne_bytes(bytes: [u8; 16]) -> i128
pub const fn from_ne_bytes(bytes: [u8; 16]) -> i128
从其内存表示形式创建一个整数值,以原生字节序表示为字节数组。
由于使用了目标平台的原生字节序,因此可移植代码可能希望酌情使用 from_be_bytes
或 from_le_bytes
。
Examples
let value = i128::from_ne_bytes(if cfg!(target_endian = "big") {
[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]
} else {
[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]
});
assert_eq!(value, 0x12345678901234567890123456789012);
Run从切片而不是数组开始时,可以使用容易出错的转换 API:
fn read_ne_i128(input: &mut &[u8]) -> i128 {
let (int_bytes, rest) = input.split_at(std::mem::size_of::<i128>());
*input = rest;
i128::from_ne_bytes(int_bytes.try_into().unwrap())
}
RunTrait Implementations§
1.22.0 · source§impl AddAssign<&i128> for Saturating<i128>
impl AddAssign<&i128> for Saturating<i128>
source§fn add_assign(&mut self, other: &i128)
fn add_assign(&mut self, other: &i128)
+=
操作。 Read more1.22.0 · source§impl AddAssign<&i128> for Wrapping<i128>
impl AddAssign<&i128> for Wrapping<i128>
source§fn add_assign(&mut self, other: &i128)
fn add_assign(&mut self, other: &i128)
+=
操作。 Read more1.22.0 · source§impl AddAssign<&i128> for i128
impl AddAssign<&i128> for i128
source§fn add_assign(&mut self, other: &i128)
fn add_assign(&mut self, other: &i128)
+=
操作。 Read moresource§impl AddAssign<i128> for Saturating<i128>
impl AddAssign<i128> for Saturating<i128>
source§fn add_assign(&mut self, other: i128)
fn add_assign(&mut self, other: i128)
+=
操作。 Read more1.60.0 · source§impl AddAssign<i128> for Wrapping<i128>
impl AddAssign<i128> for Wrapping<i128>
source§fn add_assign(&mut self, other: i128)
fn add_assign(&mut self, other: i128)
+=
操作。 Read more1.8.0 · source§impl AddAssign<i128> for i128
impl AddAssign<i128> for i128
source§fn add_assign(&mut self, other: i128)
fn add_assign(&mut self, other: i128)
+=
操作。 Read more1.22.0 · source§impl BitAndAssign<&i128> for Saturating<i128>
impl BitAndAssign<&i128> for Saturating<i128>
source§fn bitand_assign(&mut self, other: &i128)
fn bitand_assign(&mut self, other: &i128)
&=
操作。 Read more1.22.0 · source§impl BitAndAssign<&i128> for Wrapping<i128>
impl BitAndAssign<&i128> for Wrapping<i128>
source§fn bitand_assign(&mut self, other: &i128)
fn bitand_assign(&mut self, other: &i128)
&=
操作。 Read more1.22.0 · source§impl BitAndAssign<&i128> for i128
impl BitAndAssign<&i128> for i128
source§fn bitand_assign(&mut self, other: &i128)
fn bitand_assign(&mut self, other: &i128)
&=
操作。 Read moresource§impl BitAndAssign<i128> for Saturating<i128>
impl BitAndAssign<i128> for Saturating<i128>
source§fn bitand_assign(&mut self, other: i128)
fn bitand_assign(&mut self, other: i128)
&=
操作。 Read more1.60.0 · source§impl BitAndAssign<i128> for Wrapping<i128>
impl BitAndAssign<i128> for Wrapping<i128>
source§fn bitand_assign(&mut self, other: i128)
fn bitand_assign(&mut self, other: i128)
&=
操作。 Read more1.8.0 · source§impl BitAndAssign<i128> for i128
impl BitAndAssign<i128> for i128
source§fn bitand_assign(&mut self, other: i128)
fn bitand_assign(&mut self, other: i128)
&=
操作。 Read more1.45.0 · source§impl BitOr<NonZeroI128> for i128
impl BitOr<NonZeroI128> for i128
§type Output = NonZeroI128
type Output = NonZeroI128
|
运算符后的结果类型。source§fn bitor(self, rhs: NonZeroI128) -> <i128 as BitOr<NonZeroI128>>::Output
fn bitor(self, rhs: NonZeroI128) -> <i128 as BitOr<NonZeroI128>>::Output
|
操作。 Read more1.45.0 · source§impl BitOr<i128> for NonZeroI128
impl BitOr<i128> for NonZeroI128
1.22.0 · source§impl BitOrAssign<&i128> for Saturating<i128>
impl BitOrAssign<&i128> for Saturating<i128>
source§fn bitor_assign(&mut self, other: &i128)
fn bitor_assign(&mut self, other: &i128)
|=
操作。 Read more1.22.0 · source§impl BitOrAssign<&i128> for Wrapping<i128>
impl BitOrAssign<&i128> for Wrapping<i128>
source§fn bitor_assign(&mut self, other: &i128)
fn bitor_assign(&mut self, other: &i128)
|=
操作。 Read more1.22.0 · source§impl BitOrAssign<&i128> for i128
impl BitOrAssign<&i128> for i128
source§fn bitor_assign(&mut self, other: &i128)
fn bitor_assign(&mut self, other: &i128)
|=
操作。 Read more1.45.0 · source§impl BitOrAssign<i128> for NonZeroI128
impl BitOrAssign<i128> for NonZeroI128
source§fn bitor_assign(&mut self, rhs: i128)
fn bitor_assign(&mut self, rhs: i128)
|=
操作。 Read moresource§impl BitOrAssign<i128> for Saturating<i128>
impl BitOrAssign<i128> for Saturating<i128>
source§fn bitor_assign(&mut self, other: i128)
fn bitor_assign(&mut self, other: i128)
|=
操作。 Read more1.60.0 · source§impl BitOrAssign<i128> for Wrapping<i128>
impl BitOrAssign<i128> for Wrapping<i128>
source§fn bitor_assign(&mut self, other: i128)
fn bitor_assign(&mut self, other: i128)
|=
操作。 Read more1.8.0 · source§impl BitOrAssign<i128> for i128
impl BitOrAssign<i128> for i128
source§fn bitor_assign(&mut self, other: i128)
fn bitor_assign(&mut self, other: i128)
|=
操作。 Read more1.22.0 · source§impl BitXorAssign<&i128> for Saturating<i128>
impl BitXorAssign<&i128> for Saturating<i128>
source§fn bitxor_assign(&mut self, other: &i128)
fn bitxor_assign(&mut self, other: &i128)
^=
操作。 Read more1.22.0 · source§impl BitXorAssign<&i128> for Wrapping<i128>
impl BitXorAssign<&i128> for Wrapping<i128>
source§fn bitxor_assign(&mut self, other: &i128)
fn bitxor_assign(&mut self, other: &i128)
^=
操作。 Read more1.22.0 · source§impl BitXorAssign<&i128> for i128
impl BitXorAssign<&i128> for i128
source§fn bitxor_assign(&mut self, other: &i128)
fn bitxor_assign(&mut self, other: &i128)
^=
操作。 Read moresource§impl BitXorAssign<i128> for Saturating<i128>
impl BitXorAssign<i128> for Saturating<i128>
source§fn bitxor_assign(&mut self, other: i128)
fn bitxor_assign(&mut self, other: i128)
^=
操作。 Read more1.60.0 · source§impl BitXorAssign<i128> for Wrapping<i128>
impl BitXorAssign<i128> for Wrapping<i128>
source§fn bitxor_assign(&mut self, other: i128)
fn bitxor_assign(&mut self, other: i128)
^=
操作。 Read more1.8.0 · source§impl BitXorAssign<i128> for i128
impl BitXorAssign<i128> for i128
source§fn bitxor_assign(&mut self, other: i128)
fn bitxor_assign(&mut self, other: i128)
^=
操作。 Read more1.0.0 · source§impl Div<i128> for i128
impl Div<i128> for i128
此运算将舍入为零,舍去精确结果的任何小数部分。
Panics
This operation will panic if other == 0
or the division results in overflow.
1.22.0 · source§impl DivAssign<&i128> for Saturating<i128>
impl DivAssign<&i128> for Saturating<i128>
source§fn div_assign(&mut self, other: &i128)
fn div_assign(&mut self, other: &i128)
/=
操作。 Read more1.22.0 · source§impl DivAssign<&i128> for Wrapping<i128>
impl DivAssign<&i128> for Wrapping<i128>
source§fn div_assign(&mut self, other: &i128)
fn div_assign(&mut self, other: &i128)
/=
操作。 Read more1.22.0 · source§impl DivAssign<&i128> for i128
impl DivAssign<&i128> for i128
source§fn div_assign(&mut self, other: &i128)
fn div_assign(&mut self, other: &i128)
/=
操作。 Read moresource§impl DivAssign<i128> for Saturating<i128>
impl DivAssign<i128> for Saturating<i128>
source§fn div_assign(&mut self, other: i128)
fn div_assign(&mut self, other: i128)
/=
操作。 Read more1.60.0 · source§impl DivAssign<i128> for Wrapping<i128>
impl DivAssign<i128> for Wrapping<i128>
source§fn div_assign(&mut self, other: i128)
fn div_assign(&mut self, other: i128)
/=
操作。 Read more1.8.0 · source§impl DivAssign<i128> for i128
impl DivAssign<i128> for i128
source§fn div_assign(&mut self, other: i128)
fn div_assign(&mut self, other: i128)
/=
操作。 Read more1.31.0 · source§impl From<NonZeroI128> for i128
impl From<NonZeroI128> for i128
source§fn from(nonzero: NonZeroI128) -> i128
fn from(nonzero: NonZeroI128) -> i128
Converts a NonZeroI128
into an i128
1.22.0 · source§impl MulAssign<&i128> for Saturating<i128>
impl MulAssign<&i128> for Saturating<i128>
source§fn mul_assign(&mut self, other: &i128)
fn mul_assign(&mut self, other: &i128)
*=
操作。 Read more1.22.0 · source§impl MulAssign<&i128> for Wrapping<i128>
impl MulAssign<&i128> for Wrapping<i128>
source§fn mul_assign(&mut self, other: &i128)
fn mul_assign(&mut self, other: &i128)
*=
操作。 Read more1.22.0 · source§impl MulAssign<&i128> for i128
impl MulAssign<&i128> for i128
source§fn mul_assign(&mut self, other: &i128)
fn mul_assign(&mut self, other: &i128)
*=
操作。 Read moresource§impl MulAssign<i128> for Saturating<i128>
impl MulAssign<i128> for Saturating<i128>
source§fn mul_assign(&mut self, other: i128)
fn mul_assign(&mut self, other: i128)
*=
操作。 Read more1.60.0 · source§impl MulAssign<i128> for Wrapping<i128>
impl MulAssign<i128> for Wrapping<i128>
source§fn mul_assign(&mut self, other: i128)
fn mul_assign(&mut self, other: i128)
*=
操作。 Read more1.8.0 · source§impl MulAssign<i128> for i128
impl MulAssign<i128> for i128
source§fn mul_assign(&mut self, other: i128)
fn mul_assign(&mut self, other: i128)
*=
操作。 Read more1.0.0 · source§impl PartialOrd<i128> for i128
impl PartialOrd<i128> for i128
1.0.0 · source§impl Rem<i128> for i128
impl Rem<i128> for i128
此操作满足 n % d == n - (n / d) * d
。
结果具有与左操作数相同的符号。
Panics
This operation will panic if other == 0
or if self / other
results in overflow.
1.22.0 · source§impl RemAssign<&i128> for Saturating<i128>
impl RemAssign<&i128> for Saturating<i128>
source§fn rem_assign(&mut self, other: &i128)
fn rem_assign(&mut self, other: &i128)
%=
操作。 Read more1.22.0 · source§impl RemAssign<&i128> for Wrapping<i128>
impl RemAssign<&i128> for Wrapping<i128>
source§fn rem_assign(&mut self, other: &i128)
fn rem_assign(&mut self, other: &i128)
%=
操作。 Read more1.22.0 · source§impl RemAssign<&i128> for i128
impl RemAssign<&i128> for i128
source§fn rem_assign(&mut self, other: &i128)
fn rem_assign(&mut self, other: &i128)
%=
操作。 Read moresource§impl RemAssign<i128> for Saturating<i128>
impl RemAssign<i128> for Saturating<i128>
source§fn rem_assign(&mut self, other: i128)
fn rem_assign(&mut self, other: i128)
%=
操作。 Read more1.60.0 · source§impl RemAssign<i128> for Wrapping<i128>
impl RemAssign<i128> for Wrapping<i128>
source§fn rem_assign(&mut self, other: i128)
fn rem_assign(&mut self, other: i128)
%=
操作。 Read more1.8.0 · source§impl RemAssign<i128> for i128
impl RemAssign<i128> for i128
source§fn rem_assign(&mut self, other: i128)
fn rem_assign(&mut self, other: i128)
%=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for i128
impl ShlAssign<&i128> for i128
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for i16
impl ShlAssign<&i128> for i16
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for i32
impl ShlAssign<&i128> for i32
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for i64
impl ShlAssign<&i128> for i64
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for i8
impl ShlAssign<&i128> for i8
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for isize
impl ShlAssign<&i128> for isize
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for u128
impl ShlAssign<&i128> for u128
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for u16
impl ShlAssign<&i128> for u16
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for u32
impl ShlAssign<&i128> for u32
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for u64
impl ShlAssign<&i128> for u64
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for u8
impl ShlAssign<&i128> for u8
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i128> for usize
impl ShlAssign<&i128> for usize
source§fn shl_assign(&mut self, other: &i128)
fn shl_assign(&mut self, other: &i128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i16> for i128
impl ShlAssign<&i16> for i128
source§fn shl_assign(&mut self, other: &i16)
fn shl_assign(&mut self, other: &i16)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i32> for i128
impl ShlAssign<&i32> for i128
source§fn shl_assign(&mut self, other: &i32)
fn shl_assign(&mut self, other: &i32)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i64> for i128
impl ShlAssign<&i64> for i128
source§fn shl_assign(&mut self, other: &i64)
fn shl_assign(&mut self, other: &i64)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&i8> for i128
impl ShlAssign<&i8> for i128
source§fn shl_assign(&mut self, other: &i8)
fn shl_assign(&mut self, other: &i8)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&isize> for i128
impl ShlAssign<&isize> for i128
source§fn shl_assign(&mut self, other: &isize)
fn shl_assign(&mut self, other: &isize)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&u128> for i128
impl ShlAssign<&u128> for i128
source§fn shl_assign(&mut self, other: &u128)
fn shl_assign(&mut self, other: &u128)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&u16> for i128
impl ShlAssign<&u16> for i128
source§fn shl_assign(&mut self, other: &u16)
fn shl_assign(&mut self, other: &u16)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&u32> for i128
impl ShlAssign<&u32> for i128
source§fn shl_assign(&mut self, other: &u32)
fn shl_assign(&mut self, other: &u32)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&u64> for i128
impl ShlAssign<&u64> for i128
source§fn shl_assign(&mut self, other: &u64)
fn shl_assign(&mut self, other: &u64)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&u8> for i128
impl ShlAssign<&u8> for i128
source§fn shl_assign(&mut self, other: &u8)
fn shl_assign(&mut self, other: &u8)
<<=
操作。 Read more1.22.0 · source§impl ShlAssign<&usize> for i128
impl ShlAssign<&usize> for i128
source§fn shl_assign(&mut self, other: &usize)
fn shl_assign(&mut self, other: &usize)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for i128
impl ShlAssign<i128> for i128
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for i16
impl ShlAssign<i128> for i16
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for i32
impl ShlAssign<i128> for i32
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for i64
impl ShlAssign<i128> for i64
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for i8
impl ShlAssign<i128> for i8
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for isize
impl ShlAssign<i128> for isize
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for u128
impl ShlAssign<i128> for u128
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for u16
impl ShlAssign<i128> for u16
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for u32
impl ShlAssign<i128> for u32
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for u64
impl ShlAssign<i128> for u64
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for u8
impl ShlAssign<i128> for u8
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i128> for usize
impl ShlAssign<i128> for usize
source§fn shl_assign(&mut self, other: i128)
fn shl_assign(&mut self, other: i128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i16> for i128
impl ShlAssign<i16> for i128
source§fn shl_assign(&mut self, other: i16)
fn shl_assign(&mut self, other: i16)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i32> for i128
impl ShlAssign<i32> for i128
source§fn shl_assign(&mut self, other: i32)
fn shl_assign(&mut self, other: i32)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i64> for i128
impl ShlAssign<i64> for i128
source§fn shl_assign(&mut self, other: i64)
fn shl_assign(&mut self, other: i64)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<i8> for i128
impl ShlAssign<i8> for i128
source§fn shl_assign(&mut self, other: i8)
fn shl_assign(&mut self, other: i8)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<isize> for i128
impl ShlAssign<isize> for i128
source§fn shl_assign(&mut self, other: isize)
fn shl_assign(&mut self, other: isize)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<u128> for i128
impl ShlAssign<u128> for i128
source§fn shl_assign(&mut self, other: u128)
fn shl_assign(&mut self, other: u128)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<u16> for i128
impl ShlAssign<u16> for i128
source§fn shl_assign(&mut self, other: u16)
fn shl_assign(&mut self, other: u16)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<u32> for i128
impl ShlAssign<u32> for i128
source§fn shl_assign(&mut self, other: u32)
fn shl_assign(&mut self, other: u32)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<u64> for i128
impl ShlAssign<u64> for i128
source§fn shl_assign(&mut self, other: u64)
fn shl_assign(&mut self, other: u64)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<u8> for i128
impl ShlAssign<u8> for i128
source§fn shl_assign(&mut self, other: u8)
fn shl_assign(&mut self, other: u8)
<<=
操作。 Read more1.8.0 · source§impl ShlAssign<usize> for i128
impl ShlAssign<usize> for i128
source§fn shl_assign(&mut self, other: usize)
fn shl_assign(&mut self, other: usize)
<<=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for i128
impl ShrAssign<&i128> for i128
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for i16
impl ShrAssign<&i128> for i16
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for i32
impl ShrAssign<&i128> for i32
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for i64
impl ShrAssign<&i128> for i64
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for i8
impl ShrAssign<&i128> for i8
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for isize
impl ShrAssign<&i128> for isize
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for u128
impl ShrAssign<&i128> for u128
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for u16
impl ShrAssign<&i128> for u16
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for u32
impl ShrAssign<&i128> for u32
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for u64
impl ShrAssign<&i128> for u64
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for u8
impl ShrAssign<&i128> for u8
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i128> for usize
impl ShrAssign<&i128> for usize
source§fn shr_assign(&mut self, other: &i128)
fn shr_assign(&mut self, other: &i128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i16> for i128
impl ShrAssign<&i16> for i128
source§fn shr_assign(&mut self, other: &i16)
fn shr_assign(&mut self, other: &i16)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i32> for i128
impl ShrAssign<&i32> for i128
source§fn shr_assign(&mut self, other: &i32)
fn shr_assign(&mut self, other: &i32)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i64> for i128
impl ShrAssign<&i64> for i128
source§fn shr_assign(&mut self, other: &i64)
fn shr_assign(&mut self, other: &i64)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&i8> for i128
impl ShrAssign<&i8> for i128
source§fn shr_assign(&mut self, other: &i8)
fn shr_assign(&mut self, other: &i8)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&isize> for i128
impl ShrAssign<&isize> for i128
source§fn shr_assign(&mut self, other: &isize)
fn shr_assign(&mut self, other: &isize)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&u128> for i128
impl ShrAssign<&u128> for i128
source§fn shr_assign(&mut self, other: &u128)
fn shr_assign(&mut self, other: &u128)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&u16> for i128
impl ShrAssign<&u16> for i128
source§fn shr_assign(&mut self, other: &u16)
fn shr_assign(&mut self, other: &u16)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&u32> for i128
impl ShrAssign<&u32> for i128
source§fn shr_assign(&mut self, other: &u32)
fn shr_assign(&mut self, other: &u32)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&u64> for i128
impl ShrAssign<&u64> for i128
source§fn shr_assign(&mut self, other: &u64)
fn shr_assign(&mut self, other: &u64)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&u8> for i128
impl ShrAssign<&u8> for i128
source§fn shr_assign(&mut self, other: &u8)
fn shr_assign(&mut self, other: &u8)
>>=
操作。 Read more1.22.0 · source§impl ShrAssign<&usize> for i128
impl ShrAssign<&usize> for i128
source§fn shr_assign(&mut self, other: &usize)
fn shr_assign(&mut self, other: &usize)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for i128
impl ShrAssign<i128> for i128
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for i16
impl ShrAssign<i128> for i16
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for i32
impl ShrAssign<i128> for i32
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for i64
impl ShrAssign<i128> for i64
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for i8
impl ShrAssign<i128> for i8
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for isize
impl ShrAssign<i128> for isize
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for u128
impl ShrAssign<i128> for u128
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for u16
impl ShrAssign<i128> for u16
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for u32
impl ShrAssign<i128> for u32
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for u64
impl ShrAssign<i128> for u64
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for u8
impl ShrAssign<i128> for u8
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i128> for usize
impl ShrAssign<i128> for usize
source§fn shr_assign(&mut self, other: i128)
fn shr_assign(&mut self, other: i128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i16> for i128
impl ShrAssign<i16> for i128
source§fn shr_assign(&mut self, other: i16)
fn shr_assign(&mut self, other: i16)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i32> for i128
impl ShrAssign<i32> for i128
source§fn shr_assign(&mut self, other: i32)
fn shr_assign(&mut self, other: i32)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i64> for i128
impl ShrAssign<i64> for i128
source§fn shr_assign(&mut self, other: i64)
fn shr_assign(&mut self, other: i64)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<i8> for i128
impl ShrAssign<i8> for i128
source§fn shr_assign(&mut self, other: i8)
fn shr_assign(&mut self, other: i8)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<isize> for i128
impl ShrAssign<isize> for i128
source§fn shr_assign(&mut self, other: isize)
fn shr_assign(&mut self, other: isize)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<u128> for i128
impl ShrAssign<u128> for i128
source§fn shr_assign(&mut self, other: u128)
fn shr_assign(&mut self, other: u128)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<u16> for i128
impl ShrAssign<u16> for i128
source§fn shr_assign(&mut self, other: u16)
fn shr_assign(&mut self, other: u16)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<u32> for i128
impl ShrAssign<u32> for i128
source§fn shr_assign(&mut self, other: u32)
fn shr_assign(&mut self, other: u32)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<u64> for i128
impl ShrAssign<u64> for i128
source§fn shr_assign(&mut self, other: u64)
fn shr_assign(&mut self, other: u64)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<u8> for i128
impl ShrAssign<u8> for i128
source§fn shr_assign(&mut self, other: u8)
fn shr_assign(&mut self, other: u8)
>>=
操作。 Read more1.8.0 · source§impl ShrAssign<usize> for i128
impl ShrAssign<usize> for i128
source§fn shr_assign(&mut self, other: usize)
fn shr_assign(&mut self, other: usize)
>>=
操作。 Read moresource§impl Step for i128
impl Step for i128
source§unsafe fn forward_unchecked(start: i128, n: usize) -> i128
unsafe fn forward_unchecked(start: i128, n: usize) -> i128
step_trait
#42168)source§unsafe fn backward_unchecked(start: i128, n: usize) -> i128
unsafe fn backward_unchecked(start: i128, n: usize) -> i128
step_trait
#42168)count
次的 predecessor 而获得的值。 Read moresource§fn forward(start: i128, n: usize) -> i128
fn forward(start: i128, n: usize) -> i128
step_trait
#42168)source§fn backward(start: i128, n: usize) -> i128
fn backward(start: i128, n: usize) -> i128
step_trait
#42168)count
次的 predecessor 而获得的值。 Read moresource§fn steps_between(start: &i128, end: &i128) -> Option<usize>
fn steps_between(start: &i128, end: &i128) -> Option<usize>
step_trait
#42168)1.22.0 · source§impl SubAssign<&i128> for Saturating<i128>
impl SubAssign<&i128> for Saturating<i128>
source§fn sub_assign(&mut self, other: &i128)
fn sub_assign(&mut self, other: &i128)
-=
操作。 Read more1.22.0 · source§impl SubAssign<&i128> for Wrapping<i128>
impl SubAssign<&i128> for Wrapping<i128>
source§fn sub_assign(&mut self, other: &i128)
fn sub_assign(&mut self, other: &i128)
-=
操作。 Read more1.22.0 · source§impl SubAssign<&i128> for i128
impl SubAssign<&i128> for i128
source§fn sub_assign(&mut self, other: &i128)
fn sub_assign(&mut self, other: &i128)
-=
操作。 Read moresource§impl SubAssign<i128> for Saturating<i128>
impl SubAssign<i128> for Saturating<i128>
source§fn sub_assign(&mut self, other: i128)
fn sub_assign(&mut self, other: i128)
-=
操作。 Read more1.60.0 · source§impl SubAssign<i128> for Wrapping<i128>
impl SubAssign<i128> for Wrapping<i128>
source§fn sub_assign(&mut self, other: i128)
fn sub_assign(&mut self, other: i128)
-=
操作。 Read more1.8.0 · source§impl SubAssign<i128> for i128
impl SubAssign<i128> for i128
source§fn sub_assign(&mut self, other: i128)
fn sub_assign(&mut self, other: i128)
-=
操作。 Read more1.46.0 · source§impl TryFrom<i128> for NonZeroI128
impl TryFrom<i128> for NonZeroI128
source§fn try_from(
value: i128
) -> Result<NonZeroI128, <NonZeroI128 as TryFrom<i128>>::Error>
fn try_from( value: i128 ) -> Result<NonZeroI128, <NonZeroI128 as TryFrom<i128>>::Error>
Attempts to convert i128
to NonZeroI128
.