Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6356
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-12 15:06
文章分类
文章存档

2014年(13)

我的朋友
最近访客

分类: C/C++

2014-11-12 15:14:46

一道笔试题,计算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. }

阅读(60) | 评论(0) | 转发(0) |
0

上一篇:字符串逆序

下一篇:地址运算

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