Как преобразовать строку HEX в UInt16?

У меня есть HEX-строка d285, и я хочу преобразовать ее в UInt16, подскажите, как мне ее преобразовать. я пробовал это

let buffer = UInt16("\(UInt8(text, radix: 16)!)")
return Data(bytes: (buffer?.bigEndian.toBytes)!)

но это не работает


person Varun Naharia    schedule 09.10.2017    source источник


Ответы (2)


UInt16 имеет инициализатор, который принимает строку и значение системы счисления. Это можно использовать для создания UInt16 из строки.

let hexString = "d285"
let hexToInt = UInt16(hexString, radix: 16) // prints 53893
person Puneet Sharma    schedule 09.10.2017

let hexStr = "d285"
var byteArr = [UInt8]()
byteArr += hexStr.utf8  // Convert into byte array

let str = NSString(bytes: byteArr, length: byteArr.count, encoding: String.Encoding.utf8.rawValue)
let number = UInt(str, radix: 16)!

Надеюсь, что это поможет вам

person Nishant Bhindi    schedule 09.10.2017