Как преобразовать строку двоичного представления 0/1 в строку?

Я хочу преобразовать строку в двоичную (представление 0/1) и наоборот.

Это мой код для преобразования строки в двоичный файл.

let String_Data: String = UI_Data.text!
let Binary_Data: Data? = String_Data.data(using: .utf8, allowLossyConversion: false)!
let String_Binary_Data = Binary_Data?.reduce("") { (acc, byte) -> String in
        acc + String(byte, radix: 2)
    }

Но я не знаю, как сделать наоборот. Я был бы очень признателен, если бы вы могли дать мне совет для этого.


person Xedium Tube    schedule 22.12.2018    source источник
comment
Соглашение Swift заключается в том, что локальные переменные и переменные экземпляра должны использовать lowerCamelCase, а имена типов — UpperCamelCase.   -  person Alexander    schedule 22.12.2018


Ответы (1)


Я бы начал с чего-то вроде этого, хотя производительность, вероятно, не впечатляет, потому что в ней задействовано очень много маленьких промежуточных строк.

import Foundation

extension UInt8 {
    var binaryString: String {
        return String(repeating: "0", count: self.leadingZeroBitCount) + String(self, radix: 2)
    }
}

extension Data {
    var binaryString: String {
        return self.map { $0.binaryString }.joined()
    }
}

let exampleString = "abcdefghijklmnopqrstuvwxyz"
let exampleData = exampleString.data(using: .utf8)!
print(exampleData.binaryString)
person Alexander    schedule 22.12.2018