Well, if the number N is a power of two then in the binary representation it will be a unit in the left most position followed by a bunch of zeroes e.g. 16 will be 10000. If you subtract a unit from this number then the binary representation will look as a bunch of units from the right most position to the position where the unit just was but that position will be replaced by a zero, e.g: 01111. If you take an & operation then you will come up with a zero because 1 & 0 == 0. Clear, Thanks, A.