У меня есть двоичная строка, которая имеет 80 символов. Например, 1110000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (80 бит, т.е. 10 байтов) и хотел бы преобразовать его в данные
В одном случае я пытался
let binStr = "11100000111111111111111111111111111111111111111111111111111111111111111111111111"
let splittedStr = binStr.split(by: 8) // which splits the string 8 character lenght
var dataVal = Data()
for strs in splittedStr {
var val = strtoul(strs, nil, 2)
let binaryData = Data(bytes: &val, count: MemoryLayout<UInt8>.size)
dataVal += binaryData
}
, но выглядело как возвращаемое значение. Это правильный способ сделать это?
Я использовал это, чтобы разбить строку:
extension String {
func split(by length: Int) -> [String] {
var startIndex = self.startIndex
var results = [Substring]()
while startIndex < self.endIndex {
let endIndex = self.index(startIndex, offsetBy: length, limitedBy: self.endIndex) ?? self.endIndex
results.append(self[startIndex..<endIndex])
startIndex = endIndex
}
return results.map { String($0) }
}
}