strongtulip a écrit :
Salut ! Je dois réaliser une partie logicielle d'un système. Mon environnement est LabView 7.1 (mais peu importe), qui fonctionne en big endian. Les autres systèmes avec qui je dois communiquer sont en little endian.
Pour les données codés sur un nombre entier d'octets, pas de problèmes, je me contente de faire une permutation d'octets:
ex : |15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0 |
devient
|7 6 5 4 3 2 1 0 | 15 14 13 12 11 10 9 8 |
Mais qu'en est-il d'une donnée sur 12 bits :
|11 10 9 8 | 7 6 5 4 3 2 1 0 | ?????????
Que devient-elle en little endian ???
Devient elle |3 2 1 0 | 11 10 9 8 7 6 5 4 |
ou encore
7 6 5 4 3 2 1 0 | 11 10 9 8 | ?
|
Les problèmes d'endianismes n'interviennent que lors de la transmission des données, c'est à dire aux interfaces entre les systèmes. Il est important que tu saches de quel type est chaque interface, est elle alignée 8bits, 16bits, 32bits, etc... Peu importe comment ces bits seront ensuite utilisé (ex 16bits = champs 12bits + champs 4bits, ). Il te faut simplement faire les interversions pour ajuster l'alignement des deux interfaces.
Message édité par farfouille le 20-06-2005 à 19:41:39