Dim*_*rio 2 type-conversion uint8t swift
在CI有
uint32 value = 39434;
uint8 firstByte = (unsigned char)value;
uint8 secondByte = (unsigned char)(value >> 8);
Run Code Online (Sandbox Code Playgroud)
有没有可能在Swift中实现同样的目标?
它在Swift中非常相似:
let value : UInt32 = 39434
let firstByte = UInt8(truncatingBitPattern: value) // 10
let secondByte = UInt8(truncatingBitPattern: value >> 8) // 154
Run Code Online (Sandbox Code Playgroud)
init(truncatingBitPattern:)
这里需要特殊的初始值设定项,因为Swift(与C相反)不会隐式截断整数:
let firstByte = UInt8(value)
Run Code Online (Sandbox Code Playgroud)
如果value不适合范围,将导致运行时异常 UInt8.
另请参阅将UInt32拆分为swift中的[UInt8]以 获取可能的解决方案,该解决方案为您提供了包含输入值的四个字节的数组.