Je ne travaille pas tous les jours avec des problèmes big-endian et little-endian et donc j'ai du mal à me rappeler lequel est quoi.
Récemment, j'ai eu une interview demandant la différence entre les deux; puisque je ne me souvenais pas, j'ai décidé de "deviner" (50% de chance, après tout) mais j'ai échoué.
Alors, existe-t-il une astuce pratique largement connue pour se rappeler quelle est la différence entre le gros endian et le petit endian?
endianness
Emiliano
la source
la source
Réponses:
J'ai toujours pensé que c'était défini dans le mauvais sens, et c'est aussi l'astuce pour s'en souvenir. En tant que locuteur anglophone non natif, je vois "end" comme l'opposé de "start" (bien qu'évidemment "end" puisse signifier l'une ou l'autre des extrémités - la fin du début ou la fin). Quoi qu'il en soit, je me souviens juste que "c'est défini dans le mauvais sens" :)
Ou, en référence à l' endianité des bits :
Même si l'utilisation habituelle du mot endianness se réfère à la façon dont les octets sont ordonnés dans un mot, sa signification générique fait référence à l'ordre des sous-composants adressables individuellement dans la représentation d'un élément de données plus grand ( comme expliqué dans Wikipedia ).
la source
Mon conseil:
la source
La meilleure façon de s'en souvenir est que les peuples civilisés recherchent la variété et donc mangent leurs œufs différemment de leur commande. Alors que nous écrivons des chiffres décimaux en commençant par les gros chiffres en premier (gros endian), nous mangeons des œufs à la coque de la petite extrémité (little endian).
la source
Les nombres big-endiens commencent au "big end". Les nombres Little-endian commencent au "petit bout".
Les deux sont une allusion à la question de savoir où commencer à manger votre œuf, selon les voyages de Gulliver.
Dans ce cas, "fin" n'est pas l'opposé de début, cela signifie simplement n'importe quel extrême d'une (corde | chaîne | nombre | séquence), donc ils ne sont pas appelés "grand finlandais" ou "petit finlandais" (ce qui serait certainement l'opposé de "start").
la source
La façon la plus simple dont je me souvienne est de changer le mot «endian» en «startian». Les grands entiers startian commencent par la grande extrémité (par exemple les octets les plus significatifs viennent en premier), et les petits entiers startian commencent par la petite fin (par exemple les octets les moins significatifs viennent en premier).
la source
Je n'ai jamais pu me souvenir qui est "big-endian" et qui est "little-endian" mais connaissais l'endianness des processeurs PowerPC et Intel x86. Little a la plupart des lettres en commun avec Intel, donc Intel x86 est peu endian.
Bien sûr, cela n'est utile que si vous connaissez l'ordre des octets de PPC et x86. D'un autre côté, vous devez maintenant vous rappeler qu'Intel x86 = little-endian. Et rappelez-vous que x86 et ARM sont très, très compatibles même avec des jeux d'instructions totalement différents.
la source
Je le dirais ainsi: Big is beautiful!
Grand == beau == à droite.
L'endianisme droit est celui que vous pouvez lire dans un vidage hexadécimal, qui est celui qui place l'octet le plus significatif en premier, comme tout humain sain d'esprit.
Peu == laid == faux.
Les hexdumps produits par cette endianess sont tellement faux que vous vous enfuyez en criant "Brains!". C'est peut-être une sorte d'abomination extraterrestre, nous ne pouvons que spéculer sur l'origine de cette atrocité. Néanmoins, il existe, et nous sommes coincés avec lui.
Pitty, ce n'est pas toujours la meilleure variante qui fait la course ...
la source
Little == ugly == wrong
... "Même la plus petite personne peut changer le cours de l'avenir" -Galadrial, LOTREn big endian: (ordre croissant)
Faible à élevé ie
0 | 1 | 2 | 3 ^ ^ Début Fin
En petit-endien: (ordre décroissant)
Haut en bas
c'est à dire
3 | 2 | 1 | 0 ^ ^ Début Fin
la source