初始化器
init(sign:
init(sign:exponent:significand:)
从给定的符号、指数和有效数创建一个新值。
声明
init(
sign: FloatingPointSign,
exponent: Int,
significand: Float16
)
参数
sign
用于新值的符号。
exponent
新值的指数。
significand
新值的有效数字。
详述
以下示例使用此初始化程序创建一个新的 Double
实例。 Double
是一种二进制浮点类型,其基数为 2
。
let x = Double(sign: .plus, exponent: -2, significand: 1.5)
// x == 0.375
此初始化程序等效于以下计算,其中 **
是求幂,就像通过单个正确舍入的浮点运算一样计算:
let sign: FloatingPointSign = .plus
let exponent = -2
let significand = 1.5
let y = (sign == .minus ? -1 : 1) * significand * Double.radix ** exponent
// y == 0.375
与任何基本操作一样,如果此值超出类型的可表示范围,则会发生上溢或下溢,并可能导致零、次正常值或无穷大。此外,还有另外两种极端情况:
-
如果您传递给
significand
的值为零或无限,则无论exponent
的值如何,结果都是零或无限。 -
如果传递给
significand
的值为 NaN,则结果为 NaN。
对于 F
类型的任何浮点值 x
,以下结果等于 x
,区别在于如果 x
采用非规范编码,则结果是规范化的:
let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
此初始化程序实现由 IEEE 754 specification 定义的 scaleB
操作。
可用版本
iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Mac Catalyst 14.0+, tvOS 14.0+, watchOS 7.0+
相关用法
- Swift Float16 init(signOf:magnitudeOf:)用法及代码示例
- Swift Float16 init(integerLiteral:)用法及代码示例
- Swift Float16 init(exactly:)用法及代码示例
- Swift Float16 init(_:)用法及代码示例
- Swift Float16 init(floatLiteral:)用法及代码示例
- Swift Float16 init(nan:signaling:)用法及代码示例
- Swift Float16 infinity用法及代码示例
- Swift Float16 isZero用法及代码示例
- Swift Float16 isTotallyOrdered(belowOrEqualTo:)用法及代码示例
- Swift Float16 isNaN用法及代码示例
- Swift Float16 isEqual(to:)用法及代码示例
- Swift Float16 ...(_:_:)用法及代码示例
- Swift Float16 binade用法及代码示例
- Swift Float16 radix用法及代码示例
- Swift Float16 /(_:_:)用法及代码示例
- Swift Float16 -(_:_:)用法及代码示例
- Swift Float16 magnitude用法及代码示例
- Swift Float16 squareRoot()用法及代码示例
- Swift Float16 truncatingRemainder(dividingBy:)用法及代码示例
- Swift Float16 negate()用法及代码示例
- Swift Float16 *(_:_:)用法及代码示例
- Swift Float16 ..<(_:)用法及代码示例
- Swift Float16 formTruncatingRemainder(dividingBy:)用法及代码示例
- Swift Float16 -(_:)用法及代码示例
- Swift Float16 +(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Float16 init(sign:exponent:significand:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。