Ответ 1
Первое условие исключает 0, что, очевидно, не является степенью 4, но неправильно пройдет следующие два теста. (EDIT: Нет, это не так, как указано. Первый тест является избыточным.)
Следующий - хороший трюк: он возвращает true тогда и только тогда, когда это число равно 2. Сила двух характеризуется наличием только одного бита. Число с одним битом минус один приводит к числу со всеми битами, предшествующими установленному биту (т.е. 0x1000 минус один - 0x0111). И эти два числа, и вы получите 0. В любом другом случае (то есть не в силе 2) будет по крайней мере один бит, который перекрывается.
Итак, в этот момент мы знаем, что она равна 2.
x & 0x55555555
возвращает ненулевой (= true), если какой-либо четный бит установлен (бит 0, бит 2, бит 4, бит 6 и т.д.). Это означает, что мощность 4 (т.е. 2 не проходит, но 4 прохода, 8 не проходит, 16 проходов и т.д.).