2016-03-24 1 views
0

Sur la calculatrice de programmation que j'utilise, la valeur hexadécimale 0x803F est transformée en 3F80 lorsque j'appuie sur le bouton "byte flip". Cependant, je m'attendais à ce que 0x803F devienne 0xF308, c'est-à-dire une simple inversion d'ordre. Pourquoi un retournement d'octet n'implique-t-il pas un simple renversement d'ordre?pourquoi le byte flip n'implique pas une simple inversion de commande

Répondre

4

Il semble que vous pensiez que les bits devraient être inversés mais l'endianness se réfère aux octets et non aux bits. 0x803f représente deux octets, le premier est 80 et le second est 3F. Donc, inverser le boutisme provoque la valeur pour devenir 0x3F80

https://en.wikipedia.org/wiki/Endianness#Big-endian

+0

inversion changerait bitwise 0x3F à 0xFC. ("0b00111111" à "0b11111100"). Le brainfart de l'OP s'attend à ce que les grignotements (chiffres hexagonaux) soient inversés. –