Маленький Эндиан против Большого Эндиан?

У меня возникают проблемы, обертывающие мою голову на двух. Я понимаю, как представлять что-то в большом endian.

Например, -12 - 1111 1111 1111 0100

Но почему представление маленького конца 1111 0100 1111 1111 вместо 0100 1111 1111 1111?

Ответ 1

Endianness - это порядок следования байтов. Little endian означает, что младшие байты получают младшие адреса. Big endian означает наоборот. Так что речь идет о байтах (8-битных блоках), а не обрывках (4-битных блоках). Большинство компьютеров, которые мы используем (есть несколько исключений), адресные байты на уровне отдельных адресов.

Взяв пример -12:

Little endian, в памяти, будет:

000000: F4
000001: FF

Память с большим порядком байтов будет:

000000: FF
000001: F4

Ответ 2

Little endian в основном меняет порядок байтов на многобайтовое значение

1111 1111 1111 0100 - это 2 байта, где 1111 1111 - первый байт, а 1111 0100 - второй байт. В порядке байтов с прямым порядком байтов второй байт (или младший байт) читается первым, поэтому окончательное представление равно 1111 0100 1111 1111

Ответ 3

Цель big-endian - печатать шестнадцатеричные числа на экранах компьютеров слева направо, чтобы их было легче читать программистам низкого уровня или начинающим программистам; Другими словами, поскольку шестнадцатеричный код распечатывается с низкого адреса памяти на верхний, он переворачивается, если вы не измените его в программном обеспечении. Цель Little-endian состоит в том, чтобы не быть гайкой и не оставлять байты в последовательном порядке, чтобы вы не выполняли дополнительную работу для разработчиков и вместо этого заставляли ОЧЕНЬ ограниченное количество людей, которым небезразлично, переворачивать байты в программном обеспечении!

НАСТОЯТЕЛЬНО РЕКОМЕНДУЕТСЯ никогда не использовать big-endian. Сегодняшние процессоры с двойным порядком байтов и могут обрабатывать как старшие, так и младшие порядковые номера, поэтому, если вы не взаимодействуете с устаревшим оборудованием, почти вся индустрия использует little-endian, и разработчики планировали полное прекращение работы с прямым порядком байтов.

Little-Endian без форматирования программного обеспечения

    In RAM      Printed
    +----+     0x01000000
0x4 | 00 |
    | 00 |
    | 00 |
0x0 | 01 |
    +----+

Big-Endian без форматирования программного обеспечения

    In RAM      Printed
    +----+     0x00000010
0x4 | 01 |
    | 00 |
    | 00 |
0x0 | 00 |
    +----+

Little-Endian с программным форматированием

    In RAM      Printed
    +----+     0x00000010
0x4 | 00 |
    | 00 |
    | 00 |
0x0 | 01 |
    +----+

Происхождение Endian

Слово Эндиан на самом деле является древним аборигенным племенем Северной Америки. Я не могу точно вспомнить, как проходила история, поэтому, пожалуйста, оставляйте комментарии, заполняя дыры, но история в том, что два племени эндианов были вовлечены в семейную вражду из-за чего-то глупого, и в конечном итоге причина, по которой они враждовали, давно исчезла, но они все еще боролись только потому, что все еще были безумны.

Это бананы!

Термин бананы относится к известному ненаучному исследованию, предположительно проведенному с обезьянами. "Ученые" поставили лестницу в комнату с кучей обезьян и поставили бананы наверху лестницы. Если какая-нибудь из обезьян попытается подняться по лестнице, подлые ученые опрыскивают всех обезьян водой. Обезьяны научились избивать любых обезьян, которые пытались подняться по лестнице, чтобы спастись от распыления. В конце концов, ученые прекратили распылять обезьян, но обезьяны продолжали избивать любого, кто пытался подняться по лестнице. Самое смешное в этой истории то, что кто-то только что придумал. Это то, что это означает, когда что-то полностью бананов, таких как война с наркотиками.

Надо признать, что если вы опрыскивали обезьян пожарным шлангом, есть большая вероятность, что эта история окажется правдой, потому что оригинальная история не причинила достаточно боли, чтобы преодолеть обезьянью любовь к бананам, но кажется, что настоящие ученые не так уж и плохи.

Чтобы точно увидеть, что такое Banans Big-endian, давайте посмотрим на происхождение Big-Endian. Еще на заре микропроцессоров, когда они все еще делали маски и машины вручную, компания Motorola кратко обнаружила, что в то время было проще использовать метод с прямым порядком байтов. В то время процессоры Motorola были самыми быстрыми, и они разработали прочно укоренившийся лагерь Big-Endianers. Вскоре после того, как они уменьшили размер интегральных микросхем, это увеличение производительности стало неактуальным, и современные процессоры теперь имеют двойную последовательность и могут менять последовательность после загрузки. Это идентично отражало бы историю о бананах. Кто-то что-то не так понял, это стало популярным среди людей, которые не знают, что они делают, и теперь логика - ПОЛНОСТЬЮ БАНАНЫ !!! #DeleteBigEndian