Порядок байтов: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
→‎Варианты записи: убрал, о чем понятнее уже было сказано выше
Строка 49:
| Порядок, принятый в PDP-11 || (PDP-endian) || 0xB2, 0xA1, 0xD4, 0xC3
|}
 
=== Сравнение ===
[[Файл:Endianmem.PNG|Размещение байтов слова в памяти Big-endian и Little-endian ЭВМ|thumb|300px]]
Существенным достоинством little-endian по сравнению с big-endian порядком записи считается возможность «неявной типизации» целых чисел при чтении меньшего объёма байт (при условии, что читаемое число помещается в диапазон). Так, если в ячейке памяти содержится число 0x00000022, то прочитав его как int16 (два байта) мы получим число 0x0022, прочитав один байт — число 0x22. Однако, это же может считаться и недостатком, потому что провоцирует ошибки потери данных.
У little-endian, по сравнению с big-endian, есть «неочевидность» значения байтов памяти при [[отладка|отладке]] (последовательность байтов (A1, B2, C3, D4) на самом деле значит 0xD4C3B2A1, для big-endian эта последовательность (A1, B2, C3, D4) читалась бы «естественным» для арабской записи чисел образом: 0xA1B2C3D4). Наименее удобным в работе считается middle-endian формат записи; он сохранился только на старых платформах.
 
Для записи [[длинная арифметика|длинных чисел]] (чисел, длина которых существенно превышает разрядность машины) обычно предпочтительнее порядок ''слов в числе'' little-endian (поскольку арифметические операции над длинными числами производятся от младших разрядов к старшим). Порядок ''байтов в слове'' — обычный для данной архитектуры.
 
== Определение порядка байтов ==