Ответ 1
Я немного искал сеть, чтобы получить дополнительную информацию по этому вопросу, и есть довольно много ответов и рассуждений, чтобы объяснить, почему предпочтительнее использовать большой или маленький порядок. Я сделаю все возможное, чтобы объяснить здесь, что я нашел:
Little-младший
Очевидным преимуществом для малозначности является то, о чем вы уже упоминали в своем вопросе... факт, что данный номер может быть прочитан как число разного количества бит из одного и того же адреса памяти. Как говорится в статье в Википедии по теме:
Хотя это свойство little-endian редко используется непосредственно высокоуровневыми программистами, оно часто используется оптимизаторами кода, а также программистами на языке ассемблера.
Из-за этого математические функции, содержащие множественные исправления, легче писать, потому что значение байта всегда будет соответствовать адресу памяти, тогда как с большими номерами это не так. Это, по-видимому, аргумент для малозначимости, который цитируется снова и снова... из-за его распространенности я должен был бы предположить, что преимущества этого упорядочения относительно значительны.
Еще одно интересное объяснение, которое я нашел, касается сложения и вычитания. При добавлении или вычитании многобайтовых чисел младший значащий байт сначала должен быть извлечен, чтобы увидеть, есть ли перенос в более значимые байты. Поскольку младший байт сначала считывается в числах с маленькими номерами, система может распараллеливать и начинать вычисление по этому байту при извлечении следующих байтов.
тупоконечника
Возвращаясь к статье в Википедии, заявленное преимущество чисел с большими номерами состоит в том, что размер числа можно более легко оценить, потому что наиболее значительная цифра на первом месте. Связанный с этим факт состоит в том, что просто сказать, является ли число положительным или отрицательным, просто изучив бит в смещении 0 в младшем байте.
То, что также указано при обсуждении преимуществ big-endianness, заключается в том, что двоичные цифры упорядочены, так как большинство людей заказывают базовые цифры 10. Это выгодно по производительности при преобразовании из двоичного в десятичное.
Хотя все эти аргументы интересны (по крайней мере, я так думаю), их применимость к современным процессорам - другое дело. В частности, аргумент сложения/вычитания наиболее важен для 8-битных систем...
Для моих денег малозначительность, кажется, имеет наибольший смысл и, безусловно, наиболее распространена при просмотре всех устройств, которые ее используют. Я думаю, что причина, по которой big-endianness по-прежнему используется, больше по причинам наследия, чем производительности. Возможно, когда-то дизайнеры данной архитектуры решили, что big-endianness предпочтительнее, и, поскольку архитектура развивалась на протяжении многих лет, континент остался прежним.
Параллелью, которую я рисую здесь, является JPEG (что является big-endian). JPEG имеет формат большой буквы, несмотря на то, что практически все машины, которые его потребляют, малодушны. В то время как можно спросить, какие преимущества для JPEG являются большими, я бы рискнул и сказал, что для всех целей и целей аргументы производительности, упомянутые выше, не делают разницы. Дело в том, что JPEG был спроектирован таким образом, и пока он остается в использовании, таким образом он должен оставаться.