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

Метод binary.ByteOrder.Uint32

Метод binary.ByteOrder.Uint32 преобразует срез байтов длины 4 в 32-битное целое число без знака. Метод принимает один параметр - срез байтов []byte, из которого нужно прочитать число. Возвращает значение типа uint32. Порядок байтов (little-endian или big-endian) зависит от того, экземпляр какого типа вызывается - binary.LittleEndian или binary.BigEndian. Метод предполагает, что срез содержит как минимум 4 байта, иначе возникнет паника.

Синтаксис

binary.BigEndian.Uint32(data []byte) uint32 binary.LittleEndian.Uint32(data []byte) uint32

Пример

Давайте прочитаем 32-битное число из байтового среза в формате big-endian:

package main import ( "encoding/binary" "fmt" ) func main() { data := []byte{0x12, 0x34, 0x56, 0x78} res := binary.BigEndian.Uint32(data) fmt.Println(res) }

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

305419896

Пример

Давайте прочитаем 32-битное число из байтового среза в формате little-endian:

package main import ( "encoding/binary" "fmt" ) func main() { data := []byte{0x12, 0x34, 0x56, 0x78} res := binary.LittleEndian.Uint32(data) fmt.Println(res) }

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

2018915346

Пример

Давайте прочитаем 32-битное число из байтового среза, полученного из сетевого пакета:

package main import ( "encoding/binary" "fmt" ) func main() { // Сетевой порядок байтов обычно big-endian packet := []byte{0x00, 0x00, 0x03, 0xE8} res := binary.BigEndian.Uint32(packet) fmt.Println(res) }

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

1000

Пример

Давайте прочитаем 32-битное число из байтового среза, полученного из файла с little-endian порядком:

package main import ( "encoding/binary" "fmt" ) func main() { // Данные из файла, записанные в little-endian data := []byte{0xFF, 0xFF, 0xFF, 0x7F} res := binary.LittleEndian.Uint32(data) fmt.Println(res) }

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

2147483647

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

  • метод binary.ByteOrder.Uint16,
    который читает 16-битное число из байтового среза
  • метод binary.ByteOrder.Uint64,
    который читает 64-битное число из байтового среза
  • метод binary.ByteOrder.PutUint32,
    который записывает 32-битное число в байтовый срез
  • функцию binary.Read,
    которая читает структурированные данные из io.Reader
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить