Функция hex.Dump

Функция hex.Dump возвращает строку, содержащую шестнадцатеричное представление переданных байтовых данных. В первом параметре функция принимает срез байтов []byte для форматирования. Результат представляет собой многострочную строку, где каждая строка содержит адрес смещения, шестнадцатеричные значения байтов и их ASCII-представление.

Синтаксис

gohex.Dump(data []byte) string

Пример

Давайте выведем шестнадцатеричный дамп строки 'abcde':

gopackage main

import (
  "encoding/hex"
  "fmt"
)

func main() {
  data := []byte("abcde")
  res := hex.Dump(data)
  fmt.Print(res)
}

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

go00000000  61 62 63 64 65                  |abcde|

Пример

Давайте выведем шестнадцатеричный дамп более длинного фрагмента данных:

gopackage main

import (
  "encoding/hex"
  "fmt"
)

func main() {
  data := []byte("Hello, World! Hello, Go!")
  res := hex.Dump(data)
  fmt.Print(res)
}

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

go00000000  48 65 6c 6c 6f 2c 20 57  6f 72 6c 64 21 20 48 65  |Hello, World! He|
00000010  6c 6c 6f 2c 20 47 6f 21               |llo, Go!|

Пример

Давайте используем hex.Dump для отладки бинарных данных:

gopackage main

import (
  "encoding/hex"
  "fmt"
)

func main() {
  data := []byte{0x00, 0x01, 0x02, 0x03, 0xff, 0xfe, 0xfd, 0xfc}
  res := hex.Dump(data)
  fmt.Print(res)
}

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

go00000000  00 01 02 03 ff fe fd fc               |........|

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

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