标签:
二进制数中1的个数
1 //不断地除2 2 int count1(int val) 3 { 4 int num = 0; 5 while(val) 6 { 7 if(val % 2 == 1) 8 num++; 9 val /= 2; 10 } 11 return num; 12 } 13 14 //位操作,移位次数为31次 15 int count2(int val) 16 { 17 int num = 0; 18 while(val) 19 { 20 num += val & 0x01; 21 val >>= 1; 22 } 23 return num; 24 } 25 //位操作,二进制代码中有多少个1就移位多少次 26 int count3(int val) 27 { 28 int num = 0; 29 while(val) 30 { 31 val &= (val - 1); 32 num++; 33 } 34 return num; 35 }
标签:
原文地址:http://www.cnblogs.com/cpsmile/p/4422470.html