web-dev-qa-db-fra.com

Little Endian vs Big Endian?

J'ai du mal à m'envelopper la tête sur les deux. Je comprends comment représenter quelque chose en big endian.

Par exemple, -12 est 1111 1111 1111 0100

Mais pourquoi la petite représentation endienne est-elle 1111 0100 1111 1111 au lieu de 0100 1111 1111 1111?

25
Clinton Jooooones

L'endianisme est d'environ ordre d'adresse des octets. Petit endian signifie que les octets de poids faible obtiennent les adresses inférieures. Big endian signifie l'inverse. Il s'agit donc des octets (morceaux de 8 bits) et non des grignotages (morceaux de 4 bits). La plupart des ordinateurs que nous utilisons (à quelques exceptions près) octets d'adresse au niveau de l'adresse individuelle.

Prenant le -12 exemple:

Le petit endian, en mémoire, serait:

000000: F4
000001: FF

Le big endian, en mémoire, serait:

000000: FF
000001: F4
17
lurker

Le petit endian inverse essentiellement l'ordre des octets pour une valeur multi-octets

1111 1111 1111 0100 est de 2 octets où 1111 1111 est le premier octet et 1111 0100 est le deuxième octet. En petit endian, le deuxième octet (ou octet le moins significatif) est lu en premier donc la représentation finale est 1111 0100 1111 1111

12
bakalolo

Le but du big-endian est d'imprimer de l'hex sur les écrans d'ordinateur de gauche à droite afin qu'ils soient plus faciles à lire par les programmeurs de bas niveau ou newb; en d'autres termes, parce que l'hex est imprimé à partir d'adresses de mémoire faible à haute, l'hex est retourné à moins que vous ne le changiez dans le logiciel. Le but de Little-endian n'est pas d'être un écrou à oreilles et de laisser les octets dans un ordre séquentiel afin de ne pas faire de travail supplémentaire pour les développeurs et de rendre à la place [~ # ~] très [~ # ~] limité nombre de personnes qui se soucient de retourner les octets dans le logiciel!

Il est FORTEMENT CONSEILLÉ de ne jamais utiliser le big-endian. Aujourd'hui, les processeurs sont à double extrémité et peuvent gérer à la fois le gros et le petit endian, donc à moins que vous n'interfaciez avec du matériel hérité, presque toute l'industrie utilise le petit endian et le big-endian devrait être complètement arrêté par les développeurs.

Little-Endian sans formatage logiciel

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

Big-Endian sans formatage logiciel

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

Little-Endian avec la mise en forme du logiciel

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

Origines d'Endian

Le mot Endian est en fait une ancienne tribu indigène d'Amérique du Nord. Je ne me souviens pas exactement comment l'histoire s'est déroulée, alors s'il vous plaît postez des commentaires en remplissant les trous, mais l'histoire est qu'il y avait deux tribus d'Endiens engagées dans une querelle de famille pour quelque chose de stupide et finalement la raison pour laquelle ils se disputaient depuis longtemps mais ils se battaient toujours juste à cause de leur colère.

Ce sont des bananes!

Le terme bananes fait référence à une célèbre étude non scientifique présumée avoir été réalisée avec des singes . Les "scientifiques" ont mis une échelle dans une pièce avec un tas de singes et ont mis des bananes en haut de l'échelle. Si l'un des singes tentait de gravir les échelons, les méchants scientifiques pulvériseraient tous les singes avec de l'eau. Les singes ont appris à battre n'importe lequel des singes qui tentaient de grimper sur l'échelle pour éviter de se faire asperger. Finalement, les scientifiques ont cessé de pulvériser les singes, mais les singes ont continué à battre tous ceux qui tentaient de gravir les échelons. La chose drôle à propos de cette histoire est que quelqu'un vient de l'inventer . C'est ce que cela signifie quand quelque chose est complètement banane, comme la guerre contre la drogue.

Certes, si vous aspergez des singes avec un tuyau d'incendie, il y a de fortes chances que l'histoire soit vraie parce que l'histoire originale n'a pas infligé assez de douleur pour vaincre l'amour des singes pour les bananes, mais il semble que les vrais scientifiques ne sont pas méchants.

Pour voir exactement comment sont les banans big-endian, regardons les origines du big-endian. À l'aube des microprocesseurs alors qu'ils fabriquaient encore les masques et les machines à la main, la société Motorola a brièvement découvert qu'il était plus rapide à l'époque d'utiliser du big endian. À l'époque, les processeurs Motorola étaient les plus rapides et ils ont développé un camp de Big Endianers fermement ancré. Peu de temps après, lorsqu'ils ont réduit la taille des circuits intégrés, cette augmentation des performances est devenue sans objet et les processeurs modernes sont désormais à double extrémité et peuvent changer d'endian au démarrage. Cela refléterait à l'identique l'histoire des bananes. Quelqu'un a mal compris quelque chose, il est devenu populaire auprès des gens qui ne savent pas ce qu'ils font, et maintenant la logique est COMPLÈTEMENT BANANES !!! # DeleteBigEndian

3
user2356685