如果x=2014,下面函数的返回值是()
返回值为:23
2014对应的二进制为:0000 0000 000 0000 0000 0111 1101 1110
而x|(x+1)的作用是对一个数中二进制0的个数进行统计
例如本题:
第一次循环:
0000 0000 000 0000 0000 0111 1101 1110 |0000 0000 000 0000 0000 0111 1101 1111 =
0000 0000 000 0000 0000 0111 1101 1111
.
.
.
每循环一次0的数量减一 ,直到溢出
所以2014二进制中一共有23个0则返回值为23