如何快速将数据转换为十六进制字符串

如何快速将数据转换为十六进制字符串

我想要SWIFT中数据值的十六进制表示。

最终我会像这样使用它:

let data = Data(base64Encoded: "aGVsbG8gd29ybGQ=")!print(data.hexString)


跃然一笑
浏览 1244回答 3
3回答

富国沪深

此代码扩展了Data使用计算属性键入。它迭代数据的字节,并将字节的十六进制表示连接到结果:extension Data {     var hexDescription: String {         return reduce("") {$0 + String(format: "%02x", $1)}     }}

蝴蝶不菲

我的版本。它不那么优雅,但它比马丁·R(MartinR.)接受的答案快10倍左右。extension Data {     private static let hexAlphabet = "0123456789abcdef".unicodeScalars.map { $0 }     public func hexEncodedString() -> String {         return String(self.reduce(into: "".unicodeScalars, { (result, value) in             result.append(Data.hexAlphabet[Int(value/16)])             result.append(Data.hexAlphabet[Int(value%16)])         }))     }}
打开App,查看更多内容
随时随地看视频慕课网APP