vali103 a écrit :
Je crois que je me suis mal exprimé : je souhaiterais faire une rotation de 2 octets : ab cd => dc ba et pas une inversion proprement dite de bits. @SquiZZ, merci, je vais regarder ça
|
Les gens qui parlent pas comme nous appellent un bloc de 4 bits un "nibble".. avec ça tu lances une bête requête "swap nibble" sur ton ami gogol, et tu trouves la réponse..
L'idée générale (sans aucune optimisation) c'est de séparer les deux bytes, de permutter les nibble dans les deux bytes et de permuter les bytes ensuite
byte a = valeur & 0xff
byte b = (valeur & 0xff00) >> 8;
a = ((a << 4) || (a >> 4))
b = ((b << 4) || (b >> 4))
nouvelle_valeur = (a << 8) | b)
Mais on peut faire plus futé et plus efficace !
Message édité par leonhard le 21-03-2011 à 14:46:31