Swift 將負(fù)數(shù)轉(zhuǎn)換為Byte
-
在Swift中呵俏,整數(shù)可以為32位或64位运准,具體取決于平臺(tái)。您的代碼將在8位字節(jié)的64位平臺(tái)上創(chuàng)建一個(gè)與
Int
類(lèi)型相同的字節(jié)數(shù)組柠座。如果要將轉(zhuǎn)換限制為32位整數(shù)驱负,則使用
Int32
而不是Int
嗦玖,結(jié)果將是4個(gè)字節(jié)的數(shù)組,與平臺(tái)無(wú)關(guān)跃脊。
let value: Int32 = -1333
let array = withUnsafeBytes(of: value.bigEndian, Array.init)
print(array) // [255, 255, 250, 203]
func byteArray<T>(from value: T) -> [UInt8] where T: FixedWidthInteger {
withUnsafeBytes(of: value.bigEndian, Array.init)
}
print(byteArray(from: -1333)) // [255, 255, 255, 255, 255, 255, 250, 203]
print(byteArray(from: Int32(-1333))) // [255, 255, 250, 203]
print(byteArray(from: Int16(-1333))) // [250, 203]