package main
import (
"fmt"
"strconv"
)
// binaryToByteArray converts a binary string to a slice of bytes
func binaryToByteArray(binaryString string) ([]byte, error) {
if len(binaryString)%8 != 0 {
return nil, fmt.Errorf("binary string length must be a multiple of 8")
}
var byteList []byte
for i := 0; i < len(binaryString); i += 8 {
byteSegment := binaryString[i : i+8]
byteValue, err := strconv.ParseUint(byteSegment, 2, 8)
if err != nil {
return nil, fmt.Errorf("invalid binary segment: %s", byteSegment)
}
byteList = append(byteList, byte(byteValue))
}
return byteList, nil
}
func main() {
binaryString := "10101110111010101110101001001011"
byteList, err := binaryToByteArray(binaryString)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Print("Byte List: ")
for _, b := range byteList {
fmt.Printf("%d ", b)
}
}
/*
run:
Byte List: 174 234 234 75
*/