The & operator is doing a bitwise and between 2 32 bit numbers, n and n-1. If they have any bits in common that are ones, that will be reversed by the !. This whole expression is defined as a macro taking in one number.

What this is saying is that the number one less than it should have not bits in common with the previous numbe other than the sign bit potentially. The reason why this expression works is that if it truly is a power of 2, only 1 bit should be a 1 so if any bits match up with the previous number, that would be impossible if it was truly a power of 2.

FYI, you are missing a parenthases at the end. I also did test this expression out for confirmation and it did actually work.