Преобразовать строку в двоичный файл в Go
Как преобразовать строку в ее двоичное представление в Go?
Пример:
Вход: "А"
Выход: "01000001"
В моем тестировании fmt.Sprintf("%b", 75)
работает только на целых числах.
2 ответа
Приведите 1-символьную строку в байт, чтобы получить ее числовое представление.
s := "A"
st := fmt.Sprintf("%08b", byte(s[0]))
fmt.Println(st)
Output: "01000001"
(Имейте в виду, что код "%b" (без числа между ними) приводит к удалению начальных нулей в выводе.)
Вы должны перебрать руны строки:
func toBinaryRunes(s string) string {
var buffer bytes.Buffer
for _, runeValue := range s {
fmt.Fprintf(&buffer, "%b", runeValue)
}
return fmt.Sprintf("%s", buffer.Bytes())
}
Или через байты:
func toBinaryBytes(s string) string {
var buffer bytes.Buffer
for i := 0; i < len(s); i++ {
fmt.Fprintf(&buffer, "%b", s[i])
}
return fmt.Sprintf("%s", buffer.Bytes())
}
Живая игровая площадка: