为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2019-07-09 14:33:05
如何快速将数据转换为十六进制字符串我想要SWIFT中数据值的十六进制表示。最终我会像这样使用它:let data = Data(base64Encoded: "aGVsbG8gd29ybGQ=")!print(data.hexString)
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

此代码扩展了Data使用计算属性键入。它迭代数据的字节,并将字节的十六进制表示连接到结果:

extension Data {
    var hexDescription: String {
        return reduce("") {$0 + String(format: "%02x", $1)}
    }}


查看完整回答
反对 回复 2019-07-09
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

我的版本。它不那么优雅,但它比马丁·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)])
        }))
    }}


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 1274 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信