如何在Swift中将字节数组[UInt8]转换为hexa字符串
发布时间:2020-12-14 02:29:11 所属栏目:百科 来源:网络整理
导读:我发现如何将六进制字符串转换为字节[UInt8],但我还没有找到如何将字节[UInt8]转换为 Swift中的六进制字符串 此hexstring转换为字符串代码: static func bytesConvertToHexstring(byte : [UInt8]) - String { var string = "" for val in byte { //getBytes
我发现如何将六进制字符串转换为字节[UInt8],但我还没有找到如何将字节[UInt8]转换为
Swift中的六进制字符串
此hexstring转换为字符串代码: static func bytesConvertToHexstring(byte : [UInt8]) -> String { var string = "" for val in byte { //getBytes(&byte,range: NSMakeRange(i,1)) string = string + String(format: "%02X",val) } return string } 像这样的结果: "F063C52A6FF7C8904D3F6E379EB85714ECA9C1CB1E8DFD6CA5D3B4A991269D60F607C565C327BD0ECC0985F74E5007E0D276499E1ADB4E0C92D8BDBB46E57705B2D5390FF5CBD4ED1B850C537301CA7E" UInt8数组:[0,11,8,15,6,5,4,14,9,12,10,2,13,3,1,??6,7,??14,??10,0]
Xcode 9或更高版本?Swift 4或更高版本
extension String { var hexaBytes: [UInt8] { var position = startIndex return (0..<count/2).flatMap { _ in // for Swift 4.1 or later use compactMap instead of flatMap defer { position = index(position,offsetBy: 2) } return UInt8(self[position...index(after: position)],radix: 16) } } var hexaData: Data { return hexaBytes.data } } extension Collection where Element == UInt8 { var data: Data { return Data(self) } var hexa: String { return map{ String(format: "%02X",$0) }.joined() } } "0f00ff".hexaBytes // [15,255] "0f00ff".hexaData // 3 bytes "0f00ff".hexaData.hexa // "0F00FF" "0f00ff".hexaData as NSData // <0f00ff> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |