J'ai quelques questions à propos de l'endian-ness qui sont assez liées pour que je les mette en une seule question:Détails sur Endian-ness et .Net?
1) L'endian-ness est-il décidé par .Net ou par le matériel?
2) Si c'est décidé par le matériel, comment puis-je savoir quel est le matériel endian en C#?
3) L'endianité affecte-t-elle les interactions binaires telles que les OR, les AND, les XOR ou les décalages? C'EST À DIRE. Est-ce que le déplacement vers la droite décalera toujours le bit le moins significatif?
4) J'en doute, mais existe-t-il une différence d'endianité entre les différentes versions du framework .Net? Je suppose qu'ils sont tous les mêmes, mais j'ai appris à arrêter de supposer certains des détails de niveau inférieur tels que celui-ci.
Si nécessaire, je peux poser ces questions comme différentes, mais je pense que quiconque connaît la réponse à l'un d'eux connaît probablement la réponse à tous (ou peut me diriger dans une bonne direction).
Je ne suis pas sûr # 4 est tout à fait correct. Par exemple, le .Net Compact Framework fonctionne sur de nombreux périphériques, je suppose que certains d'entre eux sont big-endian. Et Mono (bien que n'étant pas .Net, mais une implémentation CLR valide) fonctionne certainement sur des plateformes big-endian. Je pense que Corey demandait si l'endianness diffère avec des versions incrémentales de .Net (par exemple, 1.0 .. 4.0) - la réponse à cette question est non - cela dépend du matériel seulement. –
Je vais commencer le commentaire @Mark H. L'endianness est décidé par le matériel et .Net utilisera juste ce qu'il est. Cependant, pas de cours dans.Le net s'appuiera sur l'endianness particulier (ou au moins aucune classe ne devrait pas :-)), donc au mieux vous pouvez dire qu'il est agnostique, pas qu'il a l'endianness particulier. –
@Mark: J'ai mis à jour la réponse pour refléter Mono/CF. Je crois que la seule plate-forme BE CF est XBox. –