簡體   English   中英

小數到 uint8_t 數組

[英]Decimal to uint8_t array

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

所以我對小數有點驚訝,但無論如何:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM