如何将十六进制字符串转换为UInt16?

3

我有一个十六进制字符串d285,我想将它转换为UInt16,请指导我如何转换。我尝试过以下方法:

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

但是它没有生效。
2个回答

5

UInt16有一个 初始化器,它接收一个字符串和基数值。这可以用来从字符串中创建UInt16。

let hexString = "d285"
let hexToInt = UInt16(hexString, radix: 16) // prints 53893

这让我节省了很多时间,谢谢。 - Burf2000

0
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)!

希望这能对你有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接