这个循环知道x=0的时候结束循环,因为按位与运算规则:1&1=1 1&0=0 0&0=0要先将十进制转化成二进制进行比较:按从高到低,逐位进行"与"运算。题目的意思是X从9999开始按照按位与缩小,依次缩小直到x=0为止!就会跳出循环!这里循环运行了8次才能得出x=0的结果,所以countx=8!
c语言中&表示按位与,当x=8192时,x&(x-1)=8192&8191=0,程序退出循环,此时countx=8
这个是计算9999中二进制中有多少个1