本文簡要介紹rust語言中 u16.carrying_add
的用法。
用法
pub fn carrying_add(self, rhs: u16, carry: bool) -> (u16, bool)
計算 self + rhs + carry
而不會溢出。
執行“ternary addition”,它接受一個額外的位來添加,並且可能返回一個額外的溢出位。這允許將多個添加鏈接在一起以創建表示較大值的“big integers”。
在電子學意義上,這可以被認為是一個 16 位的“full adder”。
例子
基本用法
#![feature(bigint_helper_methods)]
assert_eq!(5u16.carrying_add(2, false), (7, false));
assert_eq!(5u16.carrying_add(2, true), (8, false));
assert_eq!(u16::MAX.carrying_add(1, false), (0, true));
assert_eq!(u16::MAX.carrying_add(0, true), (0, true));
assert_eq!(u16::MAX.carrying_add(1, true), (1, true));
assert_eq!(u16::MAX.carrying_add(u16::MAX, true), (u16::MAX, true));
如果 carry
為 false,則此方法等效於 overflowing_add
:
#![feature(bigint_helper_methods)]
assert_eq!(5_u16.carrying_add(2, false), 5_u16.overflowing_add(2));
assert_eq!(u16::MAX.carrying_add(1, false), u16::MAX.overflowing_add(1));
相關用法
- Rust u16.carrying_mul用法及代碼示例
- Rust u16.checked_mul用法及代碼示例
- Rust u16.checked_add用法及代碼示例
- Rust u16.count_zeros用法及代碼示例
- Rust u16.checked_add_signed用法及代碼示例
- Rust u16.checked_shr用法及代碼示例
- Rust u16.checked_shl用法及代碼示例
- Rust u16.checked_neg用法及代碼示例
- Rust u16.checked_log用法及代碼示例
- Rust u16.checked_log10用法及代碼示例
- Rust u16.checked_div用法及代碼示例
- Rust u16.count_ones用法及代碼示例
- Rust u16.checked_sub用法及代碼示例
- Rust u16.checked_log2用法及代碼示例
- Rust u16.checked_next_multiple_of用法及代碼示例
- Rust u16.checked_div_euclid用法及代碼示例
- Rust u16.checked_rem用法及代碼示例
- Rust u16.checked_pow用法及代碼示例
- Rust u16.checked_next_power_of_two用法及代碼示例
- Rust u16.checked_rem_euclid用法及代碼示例
- Rust u16.saturating_add用法及代碼示例
- Rust u16.rem_euclid用法及代碼示例
- Rust u16.from_le用法及代碼示例
- Rust u16.saturating_add_signed用法及代碼示例
- Rust u16.unstable_div_floor用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 u16.carrying_add。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。