Ce nest pas très bien écrit mais ça inverse les bits situés à cette position 0xFFF0000000000000 avec ceux de cette position 0x000FFF0000000000. Les 24 bits de poids fort en fait
Jaurais plutôt écrit comme ça personnellement :
#define SWITCH_UPPER_24_BITS(x) ( ( ((x) & 0x000FFF0000000000ULL) << 12 ) | ( ((x) & 0xFFF0000000000000ULL) >> 12 ) ) |
Ou comme ça si on veut garder les bits à de poids faible :
#define SWITCH_UPPER_24_BITS(x) ( ( ((x) & 0x000FFF0000000000ULL) << 12 )\
| ( ((x) & 0xFFF0000000000000ULL) >> 12 )\
| ((x) & 0x000000FFFFFFFFFFULL) ) |
Message édité par Tarabiscote le 14-02-2006 à 12:21:49