在swift

时间:2016-06-14 20:03:25

标签: ios xcode swift hex

如何在swift中将十六进制转换为十进制?

我有字符串“423fdf4dfb1115”,我需要得到这个=> 18647576781459733

我试试这个:

let result = UInt8(strtoul("423fdf4dfb1115", nil, 16)) 

但是app崩溃......

我用这个在线转换: http://www.binaryhexconverter.com/hex-to-decimal-converter

3 个答案:

答案 0 :(得分:10)

结果必须为UInt64UInt8.max为255)。

有一个便利初始化程序,不需要strtoul

let string = "423fdf4dfb1115"
let result = UInt64(string, radix:16)

答案 1 :(得分:2)

let result = UInt64(strtoul("423fdf4dfb1115", nil, 16))

答案 2 :(得分:0)

你需要让Int更好地使用Int()并且应该说它是十六进制radix: 16如下所示。

Swift 3

let result =  "423fdf4dfb1115"
let intResult =  Int(result , radix: 16)
print(intResult)