Я не работаю каждый день с проблемами с прямым порядком байтов и с прямым порядком байтов и, таким образом, мне очень трудно вспомнить, что есть что.
Недавно я получил интервью с вопросом о разнице между ними; так как я не помнил, я решил «угадать» (50% -ный шанс, в конце концов), но я потерпел неудачу.
Итак, есть ли какой-нибудь широко известный практический прием, чтобы вспомнить, в чем разница между старшим и младшим порядком байтов?
endianness
Эмилиано
источник
источник
Ответы:
Я всегда думал, что это определено неправильно, и это также совет, чтобы запомнить это. Я не являюсь носителем английского языка и вижу «конец» как противоположность «начала» (хотя очевидно, что «конец» может означать либо конец - начало конца, либо конец конца). Во всяком случае, я просто помню, что "это определено неправильно" :)
Или, ссылаясь на порядковый номер бита :
Хотя обычное использование слова endianness относится к тому, как байты упорядочены внутри слова, его общее значение относится к упорядочению индивидуально адресуемых подкомпонентов в представлении большего элемента данных ( как объяснено в Википедии ).
источник
Мой собственный совет:
источник
Лучший способ запомнить это - это то, что цивилизованные люди ищут разнообразие и, следовательно, едят свои яйца иначе, чем они заказывают свои числа. Принимая во внимание, что мы записываем десятичные цифры, начинающиеся с больших цифр вначале (big endian), мы едим яйца всмятку с маленького конца (little endian).
источник
Числа с прямым порядком байтов начинаются с «большого конца». Числа с прямым порядком байтов начинаются с «маленького конца».
Оба являются намеком на проблему того, где начать есть ваше яйцо, согласно Путешествия Гулливера.
В этом случае «конец» не является противоположностью начала, он просто означает любую крайность (канат | строка | число | последовательность), поэтому их не называют «большой финиш» или «маленький финиш» (что определенно будет противоположность «начала»).
источник
Самый простой способ для меня помнить - это заменить слово «endian» на «startian». Большие начальные целые числа начинаются с большого конца (например, старшие значащие байты идут первыми), а маленькие старшие целые числа начинаются с меньшего конца (например, младшие значащие байты идут первыми).
источник
Я никогда не мог вспомнить, что является «старшим порядком байтов», а что «младшим порядком байтов», но я знал, что процессоры PowerPC и Intel x86 имеют порядок байтов. Little имеет большинство букв, общих с Intel, поэтому Intel x86 имеет младший порядок.
Конечно, это полезно, только если вы знаете порядок байтов PPC и x86. С другой стороны, вы должны помнить, что Intel x86 = little-endian. И помните, что x86 и ARM очень, очень совместимы даже с совершенно разными наборами команд.
источник
Я бы сказал так: Большой - это красиво!
Большой == красивый == верно.
Правильный порядок байтов - это тот, который вы можете прочитать в hexdump, который ставит самый значимый байт на первое место, как любой здравомыслящий человек.
Немного == некрасиво == неправильно.
Hexdumps, создаваемые этим порядком байков, настолько ошибочны, что вы убегаете с криком «Мозги!». Может быть, это какая-то инопланетная мерзость, мы можем только догадываться о происхождении этого зверства. Тем не менее, оно существует, и мы застряли с ним.
Питти, это не всегда лучший вариант, который делает гонку ...
источник
Little == ugly == wrong
... «Даже самый маленький человек может изменить курс будущего» - Галадриал, LOTRВ старшем порядке: (в порядке возрастания)
От низкого до высокого т.е.
0 | 1 | 2 | 3 ^ ^ Начало Конец
В порядке байтов: (по убыванию)
По убыванию
т.е.
3 | 2 | 1 | 0 ^ ^ Начало Конец
источник