#include<iostream>
using namespace std;
int main()
{
int x=9999,count=0;
while(x)
{
x=x&(x-1);
count++;
}
cout<<count<<endl;
return 0;
}
此题有两种解法:
第一种解法:
将x=9999转换为二进制,转换的时候,计算比较麻烦一点,但是只要认真的转化,然后再进行一步一步按位相与,是可以解出来的。起初看到这题的时候,一般会想到用此种方法解答。
第二种解法:
将x=9999用8421bcd码表示出来,就是把每一位用四位二进制数表示出来,再进行按位相与。此法转换比较简单,前提是你得知道如何转换。
结果count的值为8