请注意,将十六进制字符串转换为二进制字符串的旧方法已从 swift 中删除,即: String(hex, radix: 2) -> 二进制字符串
swift 4 中的替代方案是什么?
您首先需要将 hexaString 转换为 Bytes Array [UInt8]。然后您可以使用String(_, radix:)将字节转换为二进制。请注意,如果您想返回 aString而不是字符串数组,[String]则需要添加前导零以使二进制字符串长度一致(8 个字符):
extension String {
typealias Byte = UInt8
var hexaToBytes: [Byte] {
var start = startIndex
return stride(from: 0, to: count, by: 2).compactMap { _ in // use flatMap for older Swift versions
let end = index(after: start)
defer { start = index(after: end) }
return Byte(self[start...end], radix: 16)
}
}
var hexaToBinary: String {
return hexaToBytes.map {
let binary = String($0, radix: 2)
return repeatElement("0", count: 8-binary.count) + binary
}.joined()
}
}
Run Code Online (Sandbox Code Playgroud)
let hexString = "00ff01fe"
hexString.hexaToBinary // "00000000111111110000000111111110"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3880 次 |
| 最近记录: |