将十六进制的String转换为Int

Syz*_*ygy 3 int hex numbers swift

我在Swift工作,我有这个字符串作为输入:"0x13123ac"
我想要一个Int输出:0x13123ac

我怎样才能做到这一点?

Cod*_*ent 6

你的问题毫无意义.计算机以二进制存储数字,而非十六进制 也许您想要的是将十六进制字符串转换为整数并将其转换回十六进制以用于显示目的:

let input = "0x13123ac"

// Int(_, radix: ) can't deal with the '0x' prefix. NSScanner can handle hex
// with or without the '0x' prefix
let scanner = Scanner(string: input)
var value: UInt64 = 0

if scanner.scanHexInt64(&value) {
    print("Decimal: \(value)")
    print("Hex: 0x\(String(value, radix: 16))")
}
Run Code Online (Sandbox Code Playgroud)