一个整数的二进制中1的个数。
1. 每次右移一位,累加
2. a & (a-1) 会消掉从右数第一个1。 如1110 & 1101 = 1100,1100 & 1011 = 1000,1000 & 0111 = 0。重复操作直到为0,统计操作个数。
判断一个数是否为2的方幂:n>0 && ((n & (n-1)) ==0)
一个整数的二进制中1的个数。
1. 每次右移一位,累加
2. a & (a-1) 会消掉从右数第一个1。 如1110 & 1101 = 1100,1100 & 1011 = 1000,1000 & 0111 = 0。重复操作直到为0,统计操作个数。
判断一个数是否为2的方幂:n>0 && ((n & (n-1)) ==0)