【发布时间】:2015-04-21 16:12:48
【问题描述】:
对不起,如果这看起来很简单,我只是无法在网上的任何地方找到它。
我有一个十六进制的 UInt8,我需要将它转换为十进制。我如何快速实现这一目标?
例如:
"ff"
谢谢
【问题讨论】:
-
(如果“十进制”是指真正的
UInt8,例如255,而不是另一个具有十进制表示的字符串,"255")。
对不起,如果这看起来很简单,我只是无法在网上的任何地方找到它。
我有一个十六进制的 UInt8,我需要将它转换为十进制。我如何快速实现这一目标?
例如:
"ff"
谢谢
【问题讨论】:
UInt8,例如255,而不是另一个具有十进制表示的字符串,"255")。
您可以使用函数 strtoul 将您的十六进制转换为十进制:
let result = UInt8(strtoul("ff", nil, 16)) // 255
【讨论】:
getBytes直接获取二进制数据。
如果你有一个字符串表示,"ff",你可以使用UInt8(_:radix:):
let string = "ff"
if let value = UInt8(string, radix: 16) {
print(value)
}
【讨论】:
strtoul。
试试这个代码,它对我有用。
// 十六进制转十进制
let h2 = "ff"
let d4 = Int(h2, radix: 16)!
print(d4)
希望对大家有所帮助
【讨论】:
如果你的 HEX 值不是字符串,而只是你想在编译时转换的东西,你也可以使用:
let integer : UInt8 = 0xff
所以在它前面加上 0x 就可以了。
【讨论】: