Endianness
Матеріал з Вікіпедії — вільної енциклопедії.
ENDIANNESS - спосіб розташування байтів машинного слова в пам'яті в різних архітектурах ЕОМ.
Певні історичні причини призвели до того, що сучасні ЕОМ можна розділити на два класи залежно від способу розміщення й адресації багатобайтових даних в пам'яті. В машинах із прямим розміщенням байт (big-endian) старший байт (big-end) слова зберігається за найменшою адресою, а в машинах зі зворотним розміщенням (little-endian) – за найбільшою. Тобто за найменшою адресою тут розмішуюється молодший байт (little-end).
«Велика війна» прихильників концепції little-endian (x86, PDP, VAX) і big-endian (IBM S/370, більшість RISC-архітектур) приводить до непорозумінь в реалізації обміну інформацією між машинами з різних «таборів». Так, наприклад, при спробі прочитати звичайним чином слово «UNIX» на машині з іншим порядком розміщення, через цю розбіжність ми можемо одержати «NUXI» (якщо кожний символ представляється байтом, а слово складається із двох байтів). Тому проблему сумісності через розбіжність порядку проходження байт, називають часто «проблемою NUXI».
В кожного зі способів можна знайти свої переваги й недоліки. При little-endian-розміщенні порядок проходження байтів збігається з порядком проходження адрес, що істотно спрощує алгоритми, пов'язані з обробкою «великих» чисел, робить природною роботу з рядками (перегляд рядка йде зліва направо). Big-endian-підхід може виявитися ефективнішим, наприклад, в задачі визначення знака числа, для чого досить прочитати тільки перше слово, яке містить знаковий розряд.
Втім, зараз аргументи на користь того або іншого способу виглядають сумнівними, і на перше місце встає проблема сумісності даних між різними архітектурами. Тому сучасні процесори забезпечуються засобами, що дозволяють працювати в обох режимах розміщення байтів.
[ред.] Цікаві факти
Терміни big-endian і little-endian запозичено у Джонатана Свіфта з його сатиричного твору «Подорожі Гулівера», де описуються держави Ліліпутія і Блефуску, що вели між собою протягом багатьох років війни через розбіжності з приводу того, з якого кінця слід розбивати варені яйця («гостро-» і “тупоконечники” ("little-" and "big-endians")).