Есть задача перевернуть байт. Чтобы первый и последний биты поменялись местами, предпоследний и второй и т.д.
Вот как это можно сделать. Первый вариант:
x = (x< <7)|((x<<5)&64)|((x<<3)&32)|((x<<1)&16)
|((x>>1)&8)|((x>>3)&4)|((x>>5)&2)|(x>>7);
Вот такой код предложил cybersonner
tmp = ((in & 0×0F) < < 4) | ((in & 0xF0) >> 4);
tmp = ((tmp & 0×33) < < 2) | ((tmp & 0xCC) >> 2);
out [...]
