今天下午做的笔试题,问下面的代码实现什么功能:
1 #include<iostream>
2
3 using namespace std;
4
5 int foo(int t);
6 int foo(int t)
7 {
8 int counter=0;
9 while(t != 0)
10 {
11 counter++;
12 t &= t-1;
13 }
14 return counter;
15 }
16
17 int main(void)
18 {
19 int t;
20 cin >> t;
21 cout << foo(t) << endl;
22 return 0;
23 }
输出某个数的二进制表示方式中有多少个字符‘1‘