Échanger deux bits avec une seule opération en C?

Disons que j'ai un octet avec six valeurs inconnues:

???1?0??

et je veux swap bits 2 et 4 (sans la modification de la ? valeurs):

???0?1??

Mais comment pourrais-je le faire dans une opération en C?

Je suis l'exécution de cette opération des milliers de fois par seconde sur un microcontrôleur de sorte que les performances est la priorité absolue.

Il serait bien de "basculer" de ces bits. Même si ce n'est pas la même que la permutation des bits, le basculement va fonctionner très bien pour mes besoins.

source d'informationauteur Nate Murray | 2009-06-11