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

Метод binary.ByteOrder.Uint64

Метод binary.ByteOrder.Uint64 преобразует срез из 8 байтов в 64-битное целое число без знака. В качестве первого параметра метод принимает срез байтов длиной не менее 8 элементов. Метод возвращает значение типа uint64. Порядок байтов определяется конкретной реализацией интерфейса binary.ByteOrder, например, binary.BigEndian или binary.LittleEndian.

Синтаксис

order.Uint64(b)

Пример

Давайте прочитаем 64-битное число из байтового среза с использованием порядка байтов BigEndian:

package main import ( "encoding/binary" "fmt" ) func main() { b := []byte{0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0} res := binary.BigEndian.Uint64(b) fmt.Println(res) }

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

0x123456789ABCDEF0

Пример

Теперь прочитаем то же самое число с использованием порядка байтов LittleEndian:

package main import ( "encoding/binary" "fmt" ) func main() { b := []byte{0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0} res := binary.LittleEndian.Uint64(b) fmt.Println(res) }

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

0xF0DEBC9A78563412

Пример

Метод можно использовать для чтения данных из сетевых пакетов, где порядок байтов обычно BigEndian:

package main import ( "encoding/binary" "fmt" ) func main() { // Пример данных из сетевого пакета packet := []byte{ 0x00, 0x00, 0x00, 0x0A, // длина пакета 0x01, 0x02, 0x03, 0x04, // идентификатор } length := binary.BigEndian.Uint32(packet[0:4]) id := binary.BigEndian.Uint32(packet[4:8]) fmt.Printf("length: %d, id: %d\n", length, id) }

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

"length: 10, id: 16909060"

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

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