Bitové operace v C aneb jak získat zrcadlový obraz bytu

Zdravím.

Jde mi v podstatě o zrcadlové prohození bitů v rámci jednoho bytu.

Př: 0b00000001 -> 0b10000000 0b10101100 -> 0b00110101

V assembleru je mi to jasné.
Tam prostě byte přepasíruji pomocí lsl a rol skrz příznak C.
Ale jak na to v Céčku mi zatím není jasné.
Existuje na to nějaká funkce?

Zkus toto:for(i=0; i<8; i++) { a <<= 1; if(b & (1<<i)) a |= 1; }
Netestovaljsem to, možná to bude potřebovat doladit.

Už jsem na to přišel. (resp. našel)

Existuje několik způsobů.
Nejlépe popsané jsem je našel zde:
daniweb.com/software-development/c/code/216516