uint8_t certificateSerialNumber[] = {0x02, 0x04, 0x24,0xA8,0x16,0x34};
十進制614995508(實際序列號)轉換為十六進制24A81634。
上面的 unit8 陣列是 TLV(標簽長度值)三元組序列號的表示,其中 T 為 0X02,L 為 0X04,V 為十六進制字串。
所以我可以一次將十六進制字串分成兩個字符
如何在objective-c中的unit8_t陣列中將十六進制轉換為TLV三元組格式?參考:https ://docs.microsoft.com/en-us/windows/win32/seccertenroll/about-integer
uj5u.com熱心網友回復:
所以我對小數有點驚訝,但無論如何:
let what: Decimal = 614995508
var num = (what as NSDecimalNumber).uint64Value
var arr = [UInt8]()
while num > 0 {
let rem = num % (16*16)
arr.append(UInt8(rem))
num = num / (16*16)
}
arr.append(UInt8(arr.count))
arr.append(2)
arr = arr.reversed()
arr.forEach {
print(String($0, radix: 16), terminator: " ")
}
結果: 2 4 24 a8 16 34
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/417688.html
標籤:
上一篇:函式名會影響性能嗎?
