Я недавно видел вопрос об интервью спросить следующее:
Учитывая число на 32 бита, напишите псевдо код для зеркального отражения предпоследнего бита
Что лучший/самый легкий путь состоит в том, чтобы сделать это?
a = 0x80000000; // the second last bit set
if( i & a == 0) // not set in i -> set it
i |= a;
else // set -> un-set it in i
i &= ~a;
edit: arg, конечно, вы можете выполнить XOR :-) Но 2 - это второй бит, а не второй последний бит. Может лучше поговорить о MSB и LSB.