如何在Swift中将十六进制转换为十进制?
我有一个字符串“423fdf4dfb1115”,需要将其转换为“18647576781459733”。
我尝试了以下代码:
let result = UInt8(strtoul("423fdf4dfb1115", nil, 16))
但是应用程序崩溃了...
我使用这个在线转换工具: http://www.binaryhexconverter.com/hex-to-decimal-converter
如何在Swift中将十六进制转换为十进制?
我有一个字符串“423fdf4dfb1115”,需要将其转换为“18647576781459733”。
我尝试了以下代码:
let result = UInt8(strtoul("423fdf4dfb1115", nil, 16))
但是应用程序崩溃了...
我使用这个在线转换工具: http://www.binaryhexconverter.com/hex-to-decimal-converter
结果必须是UInt64
(UInt8.max
为255)。
有一个便利的初始化器,不需要使用strtoul
。
let string = "423fdf4dfb1115"
let result = UInt64(string, radix:16)
String
有类似的初始化器,例如 print(String(999_999, radix: 16)) // "f423f"
。甚至还有一个可选的 uppercase
参数可以得到 F423F
。 - vadianlet result = UInt64(strtoul("423fdf4dfb1115", nil, 16))
let result = UInt64(strtoul("423fdf4dfb1115", nil, 16))