> Что такое big-endian и little-endian (Go)
Уровень: junior · Роль: backend · Категория: Технические вопросы
Компании: Фабрика решений
Стек: Go
> Пример ответа
Big-endian и little-endian - это два способа хранения многобайтовых данных в памяти, определяющие порядок байтов (endianness). В big-endian старший байт (most significant byte) хранится по младшему адресу, а младший - по старшему. В little-endian наоборот: младший байт (least significant byte) идет первым.
В Go порядок байтов важен при работе с сетевыми протоколами, бинарными файлами или аппаратными интерфейсами. Например, для чтения 32-битного целого числа из среза байтов в little-endian используется binary.LittleEndian.Uint32(data), а для big-endian — binary.BigEndian.Uint32(data). Сетевой порядок байтов (network byte order) традиционно big-endian, поэтому при отправке данных по сети часто применяют binary.BigEndian.PutUint32.
Пример на Go:
GOpackage mainimport ("encoding/binary""fmt")func main() {val := uint32(0x12345678)buf := make([]byte, 4)binary.BigEndian.PutUint32(buf, val)fmt.Printf("Big-endian: %x\n", buf) // [12 34 56 78]binary.LittleEndian.PutUint32(buf, val)fmt.Printf("Little-endian: %x\n", buf) // [78 56 34 12]}
Выбор порядка зависит от архитектуры процессора (x86 - little-endian, многие RISC - big-endian) и протокола. В Go encoding/binary абстрагирует эту разницу, позволяя явно указывать порядок.
> Похожие задачи по backend
Какие технологии и стеки вам интересны
Как организовано тестирование в команде
Как был организован процесс тестирования
Как сериализовать данные в последовательность байт в Go
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью