概述
一个字节中二进位1的个数
两个相似的方法,一个右移所查看的字节;一个查看左移1.
#include <stdio.h>
int getOneBits(unsigned char num)
{
int count = 0;
for(int i = 0; i < 8; i++)
{
if((num & (1 << i)) != 0)
count++;
}
return count;
}
int main(void)
{
printf("%dn", getOneBits((unsigned char)10));
return 0;
}
#include <stdio.h>
int getOneBits(unsigned char num)
{
int count = 0;
for(int i = 0; i < 8; i++)
{
if(((num>>i) & 1) != 0)
count++;
}
return count;
}
int main(void)
{
printf("%dn", getOneBits((unsigned char)10));
return 0;
}
在网上看到有查表法,效率高,貌似比较麻烦:
//将0x00~0xFF对应存在二进位0的个数保存在unsigned int C[256]中
const int C[256]={8,7,7,6,7,6,6,5,7,……,1,0};
//然后
int ZeroBitsCount(BYTE b) {return C[(unsigned int)b];}
最后
以上就是怕孤单戒指为你收集整理的一个字节中存在着多少个二进位1的全部内容,希望文章能够帮你解决一个字节中存在着多少个二进位1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复