You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include<iostream>
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void bin2(int n) {
|
|
|
|
|
int i,j=0;
|
|
|
|
|
int a[1000];
|
|
|
|
|
i=n;
|
|
|
|
|
if(i==0) {
|
|
|
|
|
cout<<"0"<<endl;
|
|
|
|
|
}
|
|
|
|
|
while(i) {
|
|
|
|
|
a[j]=i%2;
|
|
|
|
|
i/=2;
|
|
|
|
|
j++;
|
|
|
|
|
}
|
|
|
|
|
for(i=j-1; i>=0; i--)
|
|
|
|
|
cout<<a[i];
|
|
|
|
|
cout<<endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
int CountBit(int x) {
|
|
|
|
|
int ret=0;
|
|
|
|
|
while(x) {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
cout<<"x= ";
|
|
|
|
|
bin2(x);
|
|
|
|
|
cout<<"x-1= ";
|
|
|
|
|
bin2(x-1);
|
|
|
|
|
cout<<"x&(x-1)= ";
|
|
|
|
|
|
|
|
|
|
bin2(x&(x-1));
|
|
|
|
|
|
|
|
|
|
cout<<endl;
|
|
|
|
|
|
|
|
|
|
ret++;
|
|
|
|
|
x=x&(x-1);
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>ٸ<EFBFBD>1<EFBFBD><31>
|
|
|
|
|
cout<<CountBit(63)<<endl;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|