生无涯

吾生也有涯,而知也无涯,以无涯随有涯,乐以忘忧,生亦无涯矣www.cnblogs.com/shengwuya
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

a program a day 12

Posted on 2010-10-08 21:23  生无涯  阅读(176)  评论(1)    收藏  举报

/**
计算一个字节中1和0的位数
**/
#include<stdio.h>
int bitNumber(unsigned char c,int & count1,int & count0)
{
 unsigned char tmp = 0x1;
 for(int i = 0;i < 8;i++)
 {
  if((c & tmp) != 0)        
  {
   count1 ++;
  }
  else count0 ++;
  tmp = tmp << 1;           //若定义tmp = 0x1 << 7,此处可改为tmp >> 1;
 }
 return 1;
}
int main()
{
 int count1 = 0,count0 = 0;
 unsigned char c;
 printf("please input a character:\n");
 scanf("%c",&c);
 bitNumber(c,count1,count0);
 printf("the number of bit '1' in this character is : %d\n",count1);
 printf("the number of bit '0' in this character is : %d\n",count0);
 return 1;
}