Ответ
Little-Endian (обратный порядок байтов) — это формат записи многобайтовых чисел, при котором самый младший байт записывается по младшему адресу в памяти.
Например, 32-битное число 0x12345678
будет представлено в памяти как последовательность байтов:
78 56 34 12
Основная область применения — современные процессорные архитектуры. Большинство настольных компьютеров, ноутбуков и серверов, на которых работают бэкенд-приложения, используют архитектуры x86 и x86-64 (Intel, AMD), которые являются Little-Endian. Архитектура ARM (используется в большинстве мобильных устройств и на серверах Apple Silicon) также преимущественно работает в режиме Little-Endian.
Из-за этого Little-Endian часто называют "нативным" порядком байтов для большинства разработчиков.
Примеры использования:
- Внутреннее представление чисел в памяти на x86/x64 и ARM процессорах.
- Многие форматы файлов (например, BMP, ELF исполняемые файлы в Linux).
Важно: В сетевых протоколах, таких как TCP/IP, используется Big-Endian, поэтому при отправке данных по сети часто требуется преобразование из "нативного" Little-Endian в сетевой Big-Endian.
package main
import (
"encoding/binary"
"fmt"
)
func main() {
num := uint32(0x12345678)
buf := make([]byte, 4)
// Кодируем число в срез байтов в формате Little-Endian
binary.LittleEndian.PutUint32(buf, num)
fmt.Printf("Число в Little-Endian: % xn", buf) // Вывод: 78 56 34 12
}