Порядок байтов


В современной вычислительной технике и цифровых системах связи информация обычно представлена в виде последовательности байтов. В том случае, если число не может быть представлено одним байтом, имеет значение, в каком порядке байты записываются в памяти компьютера или передаются по линиям связи. Часто выбор порядка записи байтов произволен и определяется только соглашениями.

В общем случае, для представления числа M, большего 255 (здесь  — максимальное целое число, записываемое одним байтом), приходится использовать несколько байтов (n). При этом число M записывается в позиционной системе счисления по основанию 256:

Набор целых чисел , каждое из которых лежит в интервале от 0 до 255, является последовательностью байтов, составляющих M. При этом называется младшим байтом, а  — старшим байтом числа M.

Поскольку компьютер не адресует отдельных битов (их можно получать только через битовые поля), порядок битов в байте важен только при физической организации хранения и передачи данных, может различаться от устройства к устройству и прикладному программисту обычно не нужен.

Порядок от старшего к младшему (англ. big-endian — с большого конца): . Этот порядок подобен привычному порядку записи (например арабскими цифрами) слева направо , например, число сто двадцать три было бы записано при таком порядке как 123. В этом же порядке принято записывать байты в технической и учебной литературе, если другой порядок явно не обозначен.

Этот порядок является стандартным для протоколов TCP/IP, он используется в заголовках пакетов данных и во многих протоколах более высокого уровня, разработанных для использования поверх TCP/IP. Поэтому порядок байтов от старшего к младшему часто называют «сетевым порядком байтов» (англ. network byte order). Этот порядок байтов используется процессорами IBM 360/370/390, SPARC, Motorola 68000 (отсюда третье название — порядок байтов Motorola, англ. Motorola byte order).