计算一个整数的二进制中1的个数

 1 #include<iostream>
 2 #include<ctime>
 3 using namespace std;
 4 
 5 /*计算一个整数的二进制中1的个数*/
 6 int NumberOf1( int n) {
 7     int count = 0;
 8 
 9     while (n) {
10     
11         ++count;
12         n = (n - 1) & n;
13     }
14     return count;
15 }
16 int main()
17 {
18     cout << NumberOf1(7) << endl;
19     printf("%0x\n",7);
20     printf("%0x\n",-7);//fffffff9,负数用补码表示,补码是反码加1
21     printf("%0x\n",-8);//fffffff8
22     return 0;
23 }

 

posted @ 2014-06-05 14:36  soul390  阅读(187)  评论(0编辑  收藏  举报