Упорядочение байтов
Байты в слове могут нумероваться слева направо или справа налево. На что это влияет?
На рисунке а) изображена область 32-разрядной памяти, в которой байты пронумерованы слева направо. Компьютер, с такой памятью относится к категории компьютеров с прямым порядком следования байтов(big endian)
На рисунке, б) показана аналогичная область памяти 32-разрядного компьютера с нумерацией байтов справа налево (как у компьютеров Intel). Компьютер, с такой памятью относится к категории компьютеровс обратным порядком следования байтов(little endian)
Рисунок а). Адреса байт и полуслов в слове при прямом порядке (Little-endian).
Рисунок б). Адреса байт и полуслов в слове при обратном порядке (Big-endian).
Таким образом, в формате прямого порядка, байт с наименьшим адресом в слове рассматривается как младший значащий байт слова, а байт с наибольшим адресом - старший значащий байт.
В формате обратного порядка, старший значащий байт слова хранится в позиции байта с наименьшим порядковым номером, а младший байт - в позиции байта с наибольшим порядковым номером.
Оба этих представления хороши и внутренне последовательны. Проблемы начинаются тогда, когда один из компьютеров пытается переслать запись на другой компьютер по сети.
Формат представления целого числа одинаков в обеих системах. При этом, 32-разрядное целое число (например, 6) представлено кодом 110 в трех крайних правых битах слова, а остальные 29 бит представлены нулями.
После пересылки целого числа (6) из компьютера с прямым порядком следования байт в компьютер с обратным порядком следования байт, младший байт передаваемого целого числа с кодом 110 окажется старшим байтом целого числа.
В результате такой пересылки значение целого числа искажается.
Простого решения этой проблемы не существует. Есть один не эффективный способ, Нужно перед каждой единицей данных помещать заголовок, определяющий, какой тип данных следует за ним — строка, целое и т. д.
Это позволит компьютеру-получателю производить только необходимые преобразования. Отсутствие стандарта упорядочивания байтов является главным недостатком такого способа.
Дата добавления: 2015-07-24; просмотров: 1929;