Ответ 1
При добавлении двух чисел (на бумаге или на машине) вы начинаете с наименее значимых цифр и работаете с самыми значащими цифрами. (То же самое касается многих других операций).
В Intel 8088, который имел 16-битные регистры, но 8-битную шину данных, будучи малоконтинентами, разрешал такие инструкции запускать работу после первого цикла памяти. (Конечно, должно быть возможно, чтобы выборки памяти слова выполнялись в порядке убывания, а не увеличения, но я подозреваю, что это немного осложнило бы разработку.)
В большинстве процессоров ширина шины соответствует ширине регистра, поэтому это больше не дает преимущества.
Биг-endian числа, с другой стороны, можно сравнить, начиная с MSB (хотя многие команды сравнения фактически делают вычитание, которое в любом случае должно начинаться с LSB). Значок бит также очень легко получить.
Существуют ли алгоритмы или хранилища форматы, которые лучше работают с одним и гораздо хуже с другим?
Нет. Здесь и здесь есть небольшие преимущества, но ничего существенного.
Я действительно думаю, что litte-endian более естественен и последователен: значение бит 2 ^ (бит_позиция + 8 * byte_pos). В то время как с большим эндиантом значение бит 2 ^ (бит_позиция + 8 * (word_size - byte_pos - 1)).
Не было бы лучше, если бы мы все переключились на один и придерживались его?
Из-за доминирования x86 мы определенно тяготеем к малопринятому. Фишки ARM на многих мобильных устройствах имеют настраиваемую контенту, но часто устанавливаются в LE, чтобы быть более совместимыми с миром x86. Который в порядке со мной.