本文简要介绍rust语言中 u128.carrying_add
的用法。
用法
pub fn carrying_add(self, rhs: u128, carry: bool) -> (u128, bool)
计算 self + rhs + carry
而不会溢出。
执行“ternary addition”,它接受一个额外的位来添加,并且可能返回一个额外的溢出位。这允许将多个添加链接在一起以创建表示较大值的“big integers”。
在电子学意义上,这可以被认为是一个 128 位的“full adder”。
例子
基本用法
#![feature(bigint_helper_methods)]
assert_eq!(5u128.carrying_add(2, false), (7, false));
assert_eq!(5u128.carrying_add(2, true), (8, false));
assert_eq!(u128::MAX.carrying_add(1, false), (0, true));
assert_eq!(u128::MAX.carrying_add(0, true), (0, true));
assert_eq!(u128::MAX.carrying_add(1, true), (1, true));
assert_eq!(u128::MAX.carrying_add(u128::MAX, true), (u128::MAX, true));
如果 carry
为 false,则此方法等效于 overflowing_add
:
#![feature(bigint_helper_methods)]
assert_eq!(5_u128.carrying_add(2, false), 5_u128.overflowing_add(2));
assert_eq!(u128::MAX.carrying_add(1, false), u128::MAX.overflowing_add(1));
相关用法
- Rust u128.checked_pow用法及代码示例
- Rust u128.checked_shl用法及代码示例
- Rust u128.checked_shr用法及代码示例
- Rust u128.count_ones用法及代码示例
- Rust u128.checked_rem_euclid用法及代码示例
- Rust u128.checked_sub用法及代码示例
- Rust u128.checked_neg用法及代码示例
- Rust u128.count_zeros用法及代码示例
- Rust u128.checked_add_signed用法及代码示例
- Rust u128.checked_div_euclid用法及代码示例
- Rust u128.checked_mul用法及代码示例
- Rust u128.checked_next_multiple_of用法及代码示例
- Rust u128.checked_add用法及代码示例
- Rust u128.checked_log用法及代码示例
- Rust u128.checked_rem用法及代码示例
- Rust u128.checked_log10用法及代码示例
- Rust u128.checked_next_power_of_two用法及代码示例
- Rust u128.checked_log2用法及代码示例
- Rust u128.checked_div用法及代码示例
- Rust u128.borrowing_sub用法及代码示例
- Rust u128.to_be用法及代码示例
- Rust u128.from_be_bytes用法及代码示例
- Rust u128.wrapping_rem_euclid用法及代码示例
- Rust u128.from_be用法及代码示例
- Rust u128.rotate_left用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 u128.carrying_add。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。