Chinaunix首页 | 论坛 | 博客
  • 博客访问: 917935
  • 博文数量: 84
  • 博客积分: 4334
  • 博客等级: 上校
  • 技术积分: 1610
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-27 07:49
文章分类

全部博文(84)

文章存档

2012年(5)

2011年(21)

2010年(58)

分类: C/C++

2012-02-13 15:11:22

一道笔试题,计算1byte数据有多少位被置1。
  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <malloc.h>

  4. /*
  5. ** 函数名:find_1_inbyte
  6. ** 输入参数:char a:1byte数据
  7. ** 返回值:char count:1的位数
  8. ** 功能:计算1byte数据有多少位被置1
  9. */
  10. char find_1_inbyte(char a)
  11. {
  12.   char count = 0;
  13.   char i=0;

  14.   for(i=0;i<8;i++)
  15.   {
  16.    if(a & 0x80) //获取最高位
  17.     count++;
  18.    a=a<<1;//左移1位
  19.   }
  20.   return count;
  21. }

  22. int main()
  23. {
  24.  char i = find_1_inbyte(56);
  25.  printf("%d \n",i);
  26.  return 0;
  27. }

阅读(3436) | 评论(0) | 转发(1) |
0

上一篇:字符串逆序

下一篇:Makefile规则

给主人留下些什么吧!~~