用法一
multipliedFullWidth(by:)
声明
func multipliedFullWidth(by other: Int64) -> (high: Int64, low: Int64.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
可用版本
用法二
multipliedFullWidth(by:)
声明
func multipliedFullWidth(by other: Self) -> (high: Self, low: Self.Magnitude)
返回值
一个元组,包含将此值与 other
相乘的结果的高位和低位部分。
参数
other
将此值乘以的值。
详述
使用此方法计算否则会溢出的产品的完整结果。与传统的截断乘法不同,multipliedFullWidth(by:)
方法返回一个元组,其中包含该值与 other
乘积的 high
和 low
部分。以下示例使用此方法将两个在相乘时通常会溢出的 Int8
值相乘:
let x: Int8 = 48
let y: Int8 = -40
let result = x.multipliedFullWidth(by: y)
// result.high == -8
// result.low == 128
x
和 y
的乘积是 -1920
,它太大而无法在 Int8
实例中表示。 result
值的 high
和 low
组件在连接形成 double-width 整数时表示 -1920
;也就是说,使用result.high
作为高字节,result.low
作为Int16
实例的低字节。
let z = Int16(result.high) << 8 | Int16(result.low)
// z == -1920
可用版本
相关用法
- Swift Int64 magnitude用法及代码示例
- Swift Int64 -(_:)用法及代码示例
- Swift Int64 leadingZeroBitCount用法及代码示例
- Swift Int64 quotientAndRemainder(dividingBy:)用法及代码示例
- Swift Int64 !=(_:_:)用法及代码示例
- Swift Int64 &=(_:_:)用法及代码示例
- Swift Int64 nonzeroBitCount用法及代码示例
- Swift Int64 -=(_:_:)用法及代码示例
- Swift Int64 ~(_:)用法及代码示例
- Swift Int64 <<(_:_:)用法及代码示例
- Swift Int64 init(integerLiteral:)用法及代码示例
- Swift Int64 -(_:_:)用法及代码示例
- Swift Int64 trailingZeroBitCount用法及代码示例
- Swift Int64 ...(_:)用法及代码示例
- Swift Int64 init(truncatingIfNeeded:)用法及代码示例
- Swift Int64 %(_:_:)用法及代码示例
- Swift Int64 &-(_:_:)用法及代码示例
- Swift Int64 ..<(_:_:)用法及代码示例
- Swift Int64 /(_:_:)用法及代码示例
- Swift Int64 /=(_:_:)用法及代码示例
- Swift Int64 init(_:)用法及代码示例
- Swift Int64 ^(_:_:)用法及代码示例
- Swift Int64 &*(_:_:)用法及代码示例
- Swift Int64 &+=(_:_:)用法及代码示例
- Swift Int64 random(in:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Int64 multipliedFullWidth(by:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。