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

Функция hex.Encode

Функция hex.Encode преобразует переданный срез байтов в шестнадцатеричную строку. Первым параметром она принимает срез байтов dst, в который будет записан результат, а вторым параметром — исходный срез байтов src. Функция возвращает количество записанных байтов. Важно, чтобы целевой срез был достаточно большим, иначе произойдет паника. Для простого получения строки удобнее использовать функцию hex.EncodeToString.

Синтаксис

hex.Encode(dst, src)

Пример

Давайте закодируем срез байтов []byte{0xDE, 0xAD, 0xBE, 0xEF} в шестнадцатеричную строку с помощью функции hex.Encode:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte{0xDE, 0xAD, 0xBE, 0xEF} dst := make([]byte, hex.EncodedLen(len(src))) hex.Encode(dst, src) fmt.Println(string(dst)) }

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

"deadbeef"

Пример

Давайте закодируем строку "Hello, World!" в шестнадцатеричное представление:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("Hello, World!") dst := make([]byte, hex.EncodedLen(len(src))) hex.Encode(dst, src) fmt.Println(string(dst)) }

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

"48656c6c6f2c20576f726c6421"

Пример

Давайте рассмотрим случай, когда целевой срез имеет недостаточную длину. Это приведет к панике, поэтому всегда следует выделять правильный размер с помощью функции hex.EncodedLen:

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte{0x01, 0x02, 0x03} // Неверный размер - вызовет панику dst := make([]byte, 4) n := hex.Encode(dst, src) fmt.Printf("n: %d, dst: %s\n", n, dst) }

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

panic: runtime error: slice bounds out of range

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

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