J'arrive pas à inverser des octets

sofarsogood Messages postés 3 Statut Membre -  
chuka Messages postés 980 Statut Membre -
Bonjour,

j'ai à convertir des nombres en binaires au format intel (l'octet de poids faible en premier) en des nombres hexa avec l'octet de poids fort en premier...
Pour l'instant je voudrais juste arriver à inverser l'ordre des octets de manière systématique (sans avoir à mettre dans un tableau et dire tab[2]=tab[3] ....).
En fait je voudrais transfomer 0000 0000 0000 1010 en 0000 1010 0000 0000
ou encore 1010 0001 1110 0000 en 1110 0000 1010 0001.

Je code en C++ sous windows.

Merci d'avance

2 réponses

Utilisateur anonyme
 
Bonjour,

Sous Window, il existe les macros HIWORD et LOWORD qui isolent le mots de poids fort et faible d'un double mot. WORD HIWORD( DWORD dwValue);

Pour un mot, les macros HIBYTE et LOBYTE font la même chose. HIBYTE( WORD wValue );
Ca peut aider mais ça ne fait pas la permutation en une seule fois. Il faut passer par une variable intermédiaire.
0
chuka Messages postés 980 Statut Membre 378
 
Salut,
Tu peux essayer cela:
unsigned short i=0x0005;
i=(i<<8)|(i>>8);//i devenant le nombre inversé
J'espere ca pourra t'aider!!
@+
0