我发现如何将六进制字符串转换为字节[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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。