#include<stdio.h> //统计一个字节bit为1的个数 unsigned char CountBit(unsigned char value) { unsigned char i=0; unsigned char count=0; while(i<8) { if(value & 0x01) { count++; } value>>=1; i++; } return count; } //统计多个字节bit为1的个数 unsigned long CountNBit(unsigned char *temp, unsigned long len) { unsigned long count=0; unsigned long i=0; while(i<len) { count+=CountBit(temp[i]); i++; } return count; } int main() { unsigned char temp[5]={0xfe,0xff,0x33,0xff,0xff}; printf("temp数组的第一个元素的bit的长度: %d\n",CountBit(temp[0])); printf("temp数组的所有元素的bit的长度: %d\n",CountNBit(temp,sizeof(temp))); }
运行 效果如下图所示: