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

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 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).
 
Рядок 30 ⟶ 29:
 
Всі числа записані в 16-ковій системі числення.
{| class="standard"
|+ Число: 0xA1B2C3D4
| colspan="2" |Представлення||D4*0x01 + C3*0x100 + B2*0x10000 + A1*0x1000000
|-
|Порядок від молодшого до старшого||(little-endian)||0xD4, 0xC3, 0xB2, 0xA1
Рядок 40 ⟶ 39:
|Порядок, прийнятний в PDP-11||(PDP-endian)||0xB2, 0xA1, 0xD4, 0xC3
|}
 
=== Порівняння ===
[[Файл:Endianmem.PNG|thumb|300px|right|Розміщення байтів слова в пам'яті Big-endian— та Little-endian-машин]]
Істотною перевагою little-endian в порівнянні з big-endian є те, що порядком запису вважається можливість «неявної типізації» цілих чисел при читанні меншого обсягу байт (за умови , що прочитане
 
число поміщається в діапазон). Так, якщо в комірці пам'яті міститься число 0x00000022, то прочитавши його як int16 (два байти) ми отримаємо число 0x0022 , прочитавши один байт - число 0x22 . Однак, це ж може вважатися одночасно недоліком, тому що це може спричинити помилки втрати даних.
 
Навпаки, вважається що у little-ndian, в порівнянні з big-endian є «неочевидність» значення байтів пам'яті відлагодженні (послідовність байтів (A1, B2, C3, D4) насправді це означає 0xD4C3B2A1, для big-endian ця послідовність (A1, B2, C3, D4) читалася б «природним» для арабського запису чисел чином: 0xA1B2C3D4 ). Найменш зручним у роботі вважається middle-endian формат запису. Він зберігся тільки на старих платформах. Для запису довгих чисел (чисел, довжина яких істотно перевищує розрядність машини) зазвичай переважає порядок слів у числі little-endian (оскільки арифметичні операції над довгими числами здійснюються від молодших розрядів до старших) Порядок байтів в слові - звичайний для даної архітектури .
 
== ENDIANNESS ==
'''ENDIANNESS'''&nbsp;— спосіб розташування байтів машинного слова в пам'яті в різних [[архітектура ЕОМ|архітектурах ЕОМ]].