當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Int multipliedFullWidth(by:)用法及代碼示例


實例方法

multipliedFullWidth(by:)

返回一個元組,其中包含將此值乘以給定值的結果的高位和低位部分。

聲明

func multipliedFullWidth(by other: Int) -> (high: Int, low: Int.Magnitude)

返回值

一個元組,包含將此值與 other 相乘的結果的高位和低位部分。

參數

other

將此值乘以的值。

詳述

使用此方法計算否則會溢出的產品的完整結果。與傳統的截斷乘法不同,multipliedFullWidth(by:) 方法返回一個元組,其中包含該值與 other 乘積的 highlow 部分。以下示例使用此方法將兩個在相乘時通常會溢出的 UInt8 值相乘:


let x: UInt8 = 100
let y: UInt8 = 20
let result = x.multipliedFullWidth(by: y)
// result.high == 0b00000111
// result.low  == 0b11010000

xy 的乘積是 2000,它太大而無法在 UInt8 實例中表示。 result 值的highlow 屬性在連接形成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+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Int multipliedFullWidth(by:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。