Power of Two
Given an integer, write a function to determine if it is a power of two.
推断给出的数,是否为2的次方,如1,2,4,8,16...
class Solution { public: bool isPowerOfTwo(int n) { if (!n) return false; //等于0的情况 while (n != 1){ // 二进制第一个数肯定是1,不推断 if (n&1) return false; // 为1 则不是2的次方 n = n >> 1; } return true; } };
利用 n&(n - 1) 。即将二进制的最后一个1变为0