Преобразовать строку в двоичный файл в 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())
}

Живая игровая площадка:

http://play.golang.org/p/MXZ1Y17xWa

Другие вопросы по тегам