计算一个字节里面有多少bit被置1 ,三种算法

本文介绍了计算一个字节中1的个数的三种方法:移位计数法、逐位检查法和与自身减一法,并通过代码示例对比了它们的效率和适用性。对于负数情况,移位计数法可能存在问题,而与自身减一法则表现出高效率。
摘要由CSDN通过智能技术生成

其中一二的方法,参考了网上的  关于“计算一个字节里(byte)里面有多少bit被置1”的思考 这篇文章

第一种,移数据

int fun1(int data)
{
    int count=0;        //计数
    while(data)
    {
       count+=data&1;   //检查Num最后一位是否为1
       data>>=1;        

    }
    return count;


 

没什么可解释的,但如果是个负数,可能会出问题

 

第二种,移1

int fun2(int data)

{

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值