如何在Swift中将十六进制数转换为bin?

sub*_*dan 10 binary hex swift

我有字符串变量:var str ="239A23F"如何将此字符串转换为二进制数? str.toInt()不起作用.

Mar*_*n R 25

您可以使用NSScanner()Foundation框架:

let scanner = NSScanner(string: str)
var result : UInt32 = 0
if scanner.scanHexInt(&result) {
    println(result) // 37331519
}
Run Code Online (Sandbox Code Playgroud)

或BSD库函数 strtoul()

let num = strtoul(str, nil, 16)
println(num) // 37331519
Run Code Online (Sandbox Code Playgroud)

Swift 2(Xcode 7)开始,所有整数类型都有

public init?(_ text: String, radix: Int = default)
Run Code Online (Sandbox Code Playgroud)

初始化程序,以便提供纯粹的Swift解决方案:

let str = "239A23F"
let num = Int(str, radix: 16)
Run Code Online (Sandbox Code Playgroud)