實例方法
multiplied
multipliedFullWidth(by:)
返回一個元組,其中包含將此值乘以給定值的結果的高位和低位部分。
聲明
func multipliedFullWidth(by other: UInt8) -> (high: UInt8, low: UInt8.Magnitude)
返回值
一個元組,包含將此值與 other
相乘的結果的高位和低位部分。
參數
other
將此值乘以的值。
詳述
使用此方法計算否則會溢出的產品的完整結果。與傳統的截斷乘法不同,multipliedFullWidth(by:)
方法返回一個元組,其中包含該值與 other
乘積的 high
和 low
部分。以下示例使用此方法將兩個在相乘時通常會溢出的 UInt8
值相乘:
let x: UInt8 = 100
let y: UInt8 = 20
let result = x.multipliedFullWidth(by: y)
// result.high == 0b00000111
// result.low == 0b11010000
x
和 y
的乘積是 2000,它太大而無法在 UInt8
實例中表示。 result
值的high
和low
屬性在連接形成double-width 整數時表示2000;也就是說,使用result.high
作為高字節,result.low
作為UInt16
實例的低字節。
let z = UInt16(result.high) << 8 | UInt16(result.low)
// z == 2000
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相關用法
- Swift UInt8 ~(_:)用法及代碼示例
- Swift UInt8 leadingZeroBitCount用法及代碼示例
- Swift UInt8 init(integerLiteral:)用法及代碼示例
- Swift UInt8 ..<(_:_:)用法及代碼示例
- Swift UInt8 *=(_:_:)用法及代碼示例
- Swift UInt8 ^=(_:_:)用法及代碼示例
- Swift UInt8 init(clamping:)用法及代碼示例
- Swift UInt8 init(truncatingIfNeeded:)用法及代碼示例
- Swift UInt8 *(_:_:)用法及代碼示例
- Swift UInt8 trailingZeroBitCount用法及代碼示例
- Swift UInt8 +(_:)用法及代碼示例
- Swift UInt8 >>=(_:_:)用法及代碼示例
- Swift UInt8 >>(_:_:)用法及代碼示例
- Swift UInt8 |(_:_:)用法及代碼示例
- Swift UInt8 nonzeroBitCount用法及代碼示例
- Swift UInt8 ==(_:_:)用法及代碼示例
- Swift UInt8 &-=(_:_:)用法及代碼示例
- Swift UInt8 &<<(_:_:)用法及代碼示例
- Swift UInt8 init(exactly:)用法及代碼示例
- Swift UInt8 &=(_:_:)用法及代碼示例
- Swift UInt8 <<=(_:_:)用法及代碼示例
- Swift UInt8 -(_:_:)用法及代碼示例
- Swift UInt8 &(_:_:)用法及代碼示例
- Swift UInt8 %(_:_:)用法及代碼示例
- Swift UInt8 +=(_:_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UInt8 multipliedFullWidth(by:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。