РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1189 of 1593 menu

Функция hex.Decode

Функция hex.Decode декодирует входные данные из шестнадцатеричного представления в байтовый срез. Она принимает два параметра: первый параметр - срез байтов для записи результата (целевой буфер), второй параметр - входной срез байтов в шестнадцатеричном кодировании. Функция возвращает количество успешно записанных байтов и ошибку error, если входные данные содержат недопустимые символы или имеют нечетную длину.

Синтаксис

hex.Decode(dst, src)

Пример

Давайте декодируем шестнадцатеричную строку в байтовый срез:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("48656c6c6f20476f") dst := make([]byte, hex.DecodedLen(len(src))) n, err := hex.Decode(dst, src) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Decoded: %s\n", dst[:n]) }

Результат выполнения кода:

"Decoded: Hello Go"

Пример

Декодируем шестнадцатеричную строку, содержащую недопустимый символ:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("48656c6c6f20476g") dst := make([]byte, hex.DecodedLen(len(src))) n, err := hex.Decode(dst, src) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Decoded: %s\n", dst[:n]) }

Результат выполнения кода:

"Error: encoding/hex: invalid byte: U+0067 'g'"

Пример

Декодируем шестнадцатеричную строку с нечетной длиной:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("48656c6c6f2047") dst := make([]byte, hex.DecodedLen(len(src))) n, err := hex.Decode(dst, src) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Decoded: %s\n", dst[:n]) }

Результат выполнения кода:

"Error: encoding/hex: odd length hex string"

Смотрите также

  • функцию hex.Encode,
    которая кодирует байтовый срез в шестнадцатеричное представление
  • функцию hex.EncodeToString,
    которая возвращает шестнадцатеричную строку
  • функцию hex.DecodeString,
    которая декодирует строку в байтовый срез
  • функцию hex.Dump,
    которая возвращает дамп данных в шестнадцатеричном формате
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить