Описание тега endianness

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

Порядок байтов - это организация и порядок байтовых значений в многобайтовых словах. Существует две основные формы обратного порядка байтов: прямой и прямой.

Big endian (BE) означает, что старшие биты сохраняются первыми (младший адрес). Это похоже на чтение или произнесение имени десятичного числа в порядке чтения.

Little endian (LE) означает, что младшие биты сохраняются первыми. Байты хранятся в обратном формате с прямым порядком байтов.

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

Использование порядка байтов

Когда мы говорим о порядке байтов, мы часто имеем в виду порядок байтов в архитектуре команд / ЦП или порядок байтов файла. Порядок байтов в архитектуре или ЦП - это то, как процессор организует биты в многобайтовом слове.

  • Motorola 68000 - это архитектура с прямым порядком байтов. Он хранит многобайтовые слова в обратном порядке.
  • Процессоры Intel и архитектура x86 имеют прямой порядок байтов.
  • MIPS может работать как в прямом, так и в обратном порядке, и вы можете выбрать порядок байтов. MIPS - это формат с обратным порядком байтов.

Порядок байтов файла указывает, как байты многобайтового слова упорядочены в данном файле (применимо как к двоичным, так и к текстовым файлам). Иногда мы указываем порядок байтов файла, помещая отметку порядка байтов (BOM) в качестве первого байта этого файла.

  • Текстовый файл UTF-16 с прямым порядком байтов и спецификацией будет начинаться с двух байтов. FE FF и все двухбайтовые символы (каждый суррогат в суррогатной паре также является одним символом) должны быть выражены с прямым порядком байтов.
  • Текстовый файл UTF-16 с прямым порядком байтов и спецификацией будет начинаться с двух байтов. FF FE и все двухбайтовые символы должны быть выражены прямым порядком байтов.

Примеры порядка байтов

32-битное значение int со знаком, 12356789, хранится в виде четырех байтов в формате дополнения до двух.

  • При обратном порядке байтов значение сохраняется как 07 5B CD 15 в шестнадцатеричной системе счисления.
  • При обратном порядке байтов значение сохраняется как 15 CD 58 07 в шестнадцатеричной системе счисления.

Текстовый файл UTF-16 со спецификацией содержит следующие символы: A 汉.

  • Символ спецификации имеет значение U+FEFF. Смайлик имеет значение UnicodeU+1F197 выражается двумя суррогатными парами, U+D83C U+DD97
  • При обратном порядке байтов символы сохраняются как FEFF 0041 0020 6C49 D83C DD97
  • При обратном порядке байтов они хранятся как FFFE 4100 2000 496C 3CD8 97DD

Подробнее

Связанные теги:

Внешняя ссылка: