Comment retourner un bit spécifique dans un octet en C?

Je suis en train d'utiliser des masques et de manipuler les bits dans un octet.
Par exemple:

Je veux écrire un programme en C qui retourne deux bits à des positions particulières par exemple le bit à la position 0 et celle à la troisième position.
Donc, 11100011, deviendrait 01110011.

Comment puis-je échanger ces bits?

source d'informationauteur Niels Robben