C语言 输入一个正整数 求其有效bit位数并统计其bit位为1的数量

/*
 * 任意输入一个正整数 写两个函数功能 求其有效bit位数  进而统计其bit位为1的数量
*/
#include <stdio.h>

int  bitnFunc(unsigned int value);
int  checkOneBit(unsigned int value);

int main(void)
{
    unsigned int num,ebit,n;

    printf("输入一个正整数:");
    scanf("%u",&num);

    ebit=bitnFunc(num);
    printf("%u 有效bit位数:%d\n",num,ebit);

    n=checkOneBit(num);
    printf("%u bit位为1的数量:%d\n",num,n);
    return 0;
}
int  bitnFunc(unsigned int value)
{
    int count=0;
    do{
      count++;

      value>>=1;
    }while(value);

    return count;
}
int  checkOneBit(unsigned int value)
{
     int n=0;
     
    do{
      //测试第一bit是否为1
      if((value & 0x1)!=0)
      {
          n++;
      }

      value>>=1;
    }while(value);

    return n;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值