перейти как реализовать метод python binascii.unhexlify?

#python #python-3.x #go

#python #python-3.x #Вперед

Вопрос:

В моей компании есть система, написанная на python, и я хочу переопределить ее с помощью golang.

Вопрос

Python binascii.unhexlify кажется сложным, и я не знаю, как его реализовать в go.

Комментарии:

1. Это просто преобразование из шестнадцатеричного в двоичный. Каждые две шестнадцатеричные цифры — это 8-битный байт (256 возможных значений).

2. @TigerhawkT3 извините, binascii.unhexlify это просто

3. В случае, если это не упражнение, производственный код, конечно, должен использовать стандартную библиотеку: golang.org/pkg/encoding/hex/#Decode .

4. @Peter tks, это то, что я хочу

Ответ №1:

binascii.unhexlify метод достаточно прост. Это просто преобразование из шестнадцатеричного в двоичный. Каждые две шестнадцатеричные цифры — это 8-битный байт (256 возможных значений). вот мой код

 func unhexlify(str string) []byte {
    res := make([]byte, 0)
    for i := 0; i < len(str); i =2 {
        x, _ := strconv.ParseInt(str[i:i 2], 16, 32)
        res = append(res, byte(x))
    }
    return res
}
 

Я должен использовать библиотеку

 func ExampleDecodeString() {
    const s = "48656c6c6f20476f7068657221"
    decoded, err := hex.DecodeString(s)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("%sn", decoded)

    // Output:
    // Hello Gopher!
}