当前位置:码农谷 > 算法与程序 > 计算一个字节里有多少位(bit)被置1

计算一个字节里有多少位(bit)被置1

所属学科:C语言 - 位运算 难度: 关注度:630

程序说明:

一个字节(byte)有8位,因此首先在宏定义BIT7中将最高位置成1。然后在calculate 函数中比较每个位是否被置成1,如果是,则为count++,循环结束后返回count的值。 最后在main函数中进行测试:如果输入的值为97 (二进制为1100001),则最后打印出 count= 3。

源程序如下所示。

#include "stdio.h"
#define BIT7 (0x1 << 7)

int calculate (unsigned char c)
{
    int count = 0;
    int i = 0;
    unsigned char comp = BIT7;				
    for (i = 0; i < sizeof(c) * 8; i++)	
    {	
        if ((c & comp) != 0)	
        {
            count++;
        }
        comp = comp>> 1;
    }	
    return count; 
}

int  main (int argc, char* argv[ ])

关注微信,获得更多免费资源
关于我们   |   免责声明   |   联系我们   |   网站地图   |   HR交流群   |   学生交流群   |   教师交流群

码农谷   版权所有 © 2015-2017   湘ICP备16018319号-1