[英]Swift 3: How to convert byte array into Data?
我知道如何將int值轉換為數據
let value: NSInteger = 1
let valueData:Data = Data(buffer: UnsafeBufferPointer(start: &intVal, count: 1))
現在我想對以以下方式表示的RGB顏色執行相同操作0xRRGGBB
我該如何實現? 我應該將其寫為String,即“ 543621”,然后將其轉換為字節數組,然后將其轉換為Data嗎?
將顏色存儲為UInt32
實例似乎是適當的,在這種情況下,您已經發布了一種用於從中初始化Data
實例的方法
var pink: UInt32 = 0xCC6699
let pinkData = Data(buffer: UnsafeBufferPointer(start: &pink, count: 1))
print(pinkData.map {$0}) // [153, 102, 204, 0]
print(0x99, 0x66, 0xCC) // 153 102 204
正如MartinR在下面的評論中指出的那樣,要確保十六進制數字表示形式0xCC6699
以其小尾數表示形式存儲(即使對於采用大尾數主機字節順序的系統也是如此), pink
變量應初始化為:
var pink = UInt32(0xCC6699).littleEndian
// or ...
var pink = UInt32(littleEndian: 0xCC6699)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.