import Foundation
func bin2text(_ binTxt: String) -> String {
var text = ""
// Iterate through the binary string in chunks of 8 bits
for i in stride(from: 0, to: binTxt.count, by: 8) {
// Extract an 8-bit chunk
let startIndex = binTxt.index(binTxt.startIndex, offsetBy: i)
let endIndex = binTxt.index(startIndex, offsetBy: 8)
let binaryChunk = String(binTxt[startIndex..<endIndex])
// Convert the binary chunk to an integer
if let asciiValue = Int(binaryChunk, radix: 2) {
// Convert the integer to a character and append to the result
text += String(UnicodeScalar(asciiValue)!)
}
}
return text
}
let binaryInput = "0101000001110010011011110110011101110010011000010110110101101101011010010110111001100111"
let textOutput = bin2text(binaryInput)
print(textOutput)
/*
run:
Programming
*/