Порядок байтів: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 1:
[[Файл:Endianmem.PNG|thumb|300px|right|Розміщення байтів слова в пам'яті Big-endian— та Little-endian-машин]]
 
'''Порядок байтів''' - метод запису [[байтів]] багатобайтових чисел в [[Інформатика|інформатиці]].
 
Рядок 10 ⟶ 8:
 
=== Порядок від більшого до найменшого ===
[[Файл:Endianmem.PNG|thumb|300px|right|Розміщення байтів слова в пам'яті Big-endian— та Little-endian-машин]]
''Порядок від старшого до молодшого'' або ([[Англійська мова|англ]]. ''big-endian'', дослівно: «тупокінцевий»): <math>A_n,\dots,A_0</math>, Запис починається зі старшого і закінчується молодшим. Цей порядок є стандартним для протоколів [[TCP/IP]], він використовується в заголовках пакетів даних і в багатьох протоколах більш високого рівня, розроблених для використання поверх [[TCP/IP]]. Тому, порядок байтів від старшого до молодшого часто називають мережевим порядком байтів (англ. network byte order). Цей порядок байтів використовується процесорами [[IBM 360]]/[[ibm 370|370]]/390, [[Motorola 68000]], [[SPARC]] (звідси третя назва - порядок байтів Motorola, Motorola byte order).
 
=== Порядок від молодшого до старшого ===
''Порядок від молодшого до старшого'' або ([[Англійська мова|англ]].'' little-endian'', дослівно: «гострокінцевий», про походження терміна нижче): <math>A_0,\dots,A_n</math>, запис починається з молодшого і закінчується старшим . Цей порядок запису прийнятий в пам'яті персональних комп'ютерів з [[x86]] - процесорами , у зв'язку з чим іноді його називають интелівський"інтелівський" порядок байтів ( за назвою фірми- творця архітектури [[x86]]) . У деяких колах використовується назва англ. [[VAX]] order , наприклад , в документації [[Perl]] <ref>[http://perldoc.perl.org/functions/pack.html pack() в Perl]</ref>..
 
На противагу «тупокінцевому» порядку, менше крос-платформних протоколів і форматів даних із «загостреним» порядком байтів; помітні винятки: [[USB]], конфігурація [[PCI]], [[таблиця розділів GUID]], рекомендації [[FidoNet]] .
 
=== Змінюваний порядок ===
Різні процесори можуть працювати і в порядку від молодшого до старшого, і в зворотному, наприклад, [[ARM]], [[PowerPC]] (але не PowerPC 970), [[DEC Alpha]], [[MIPS]], PA-RISC і [[IA-64]]. Зазвичай порядок байтів вибирається програмно під час ініціалізації [[Операційна система|операційної системи]], але може бути вибраний і апаратними перемичками на [[Материнська плата|материнській платі]]. У цьому випадку правильніше говорити про порядок байтів [[Операційна система|операційної системи]]. Змінюваний порядок байтів іноді називають [[Англійська мова|англ]]. ''bi-endian''.
 
=== Змішаний порядок ===
Змішаний порядок байтів ([[Англійська мова|англ]]. ''middle-endian )'' іноді використовується при роботі з числами, довжина яких перевищує машинне слово. Число представляється послідовністю машинних слів, які записуються у форматі, природному для даної архітектури, але самі слова слідують у зворотному порядку.
 
Класичний приклад ''middle-endian'' - представлення 4-байтних цілих чисел на 16 - бітних процесорах сімейства PDP- 11 ( відомий як PDP- endian ) . Для представлення двобайтових значень (слів) використовувався порядок'' little-endian'' , але 4-х байтное подвійне слово записувалося'' від старшого слова до молодшого''.
 
У процесорах VAX і ARM використовується змішане уявлення для довгих дійсних чисел .
 
== ENDIANNESS ==