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

时间:2017-06-16 07:32:41

标签: ios swift

我已使用下面的代码将字符串“UK”转换为十六进制。如何将其转换为十六进制?

    let str = auxText
    let bytes = str.utf8
    var buffer = [UInt8](bytes)
    buffer[0] = buffer[0] + UInt8(1)
    print("ascii value is",buffer)

1 个答案:

答案 0 :(得分:0)

在Swift 4中,您可以将ascii编码的string转换为带有

的数据
string.data(using: .ascii)

要将数据转换为十六进制或十进制,您可以使用以下扩展名:

extension Data {

    var hexString: String {
        return map { String(format: "%02hhx", $0) }.joined()
    }

    var decimalString: String {
        return map { String(format: "%d", $0) }.joined()
    }

}

您的测试字符串" UK"

let string = "UK"

使用

进行评估
let hexString = string.data(using: .ascii)!.hexString

554b

并且

let decimalString = string.data(using: .ascii)!.decimalString

8575

两个结果都是正确的,你可以在任何ASCII表中查找它们。