码迷,mamicode.com
首页 > 编程语言 > 详细

C语言--计算二进制数中1的个数(&)

时间:2015-05-16 06:49:43      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:二进制   c语言   amp   

//15
//00001111>>1
//00000111

int count_bit(unsigned int value)
{
int one = 0;
while(value)
{
if(value%2 == 1)
one++;
value = value >> 1;
}
return one;
}
//x&1;  n += x &1; x>>=1;
	  
//1111  & 0001 = 0001    n=1
//0111  & 0001 = 0001      2
//0011  & 0001 = 0001      3
//0001  & 0001 = 0001      4
int count_bit1(unsigned int x)
{ 
	int n=0;
  do  
  { 
	  n += x &1;
	  x>>=1; 
  }
  while (x!=0);
  return (n);
}

//x&(x-1)
//1111  & 1110 = 1110
//1110  & 1101 = 1100
//1100  & 1011 = 1000
//1000  & 0111 = 0000
int count_bit2(unsigned int value)
{
int count = 0;
while(value)
{
count++;
value = value & (value-1);
}
return count;
}


C语言--计算二进制数中1的个数(&)

标签:二进制   c语言   amp   

原文地址:http://blog.csdn.net/fujinlong520/article/details/45754215

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!