写一个函数返回参数二进制中1的个数
admin
2023-07-25 08:22:19
0

题目:写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
程序原型:
int count_one_bits(unsigned int value)
{
// 返回 1的位数
}
解题思路:首先写出这个数字的二进制序列并且定义一个计数器,由于数字在计算机中是以其二进制补码的形式进行存储,那么我们需要知道这个数字的二进制原码。然后通过循环右移其二进制序列和1进行按位与,如果按位与的结果是1,则计数器加一,否则继续此操作,直到右移完它的全部位数,则循环结束。
解法一:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int count_one(unsigned int value)
{
int count = 0;
int i = 0;
for (i = 0; i < 32; i++)
{
if (value >> i & 0x1)
{
count++;
}
}
return count;
}
void main()
{
unsigned int input = 0;
printf("请输入一个数:");
scanf("%d", &input);
printf("%d\n", count_one(input));
system("pause");
return 0;
}
解法二:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int count_one(unsigned int n)
{
int count = 0;
while (n!=0)
{
n=n&(n - 1);
count++;
}
return count;

}
void main()
{
unsigned int input = 0;
printf("请输入一个数:");
scanf("%d", &input);
printf("%d\n", count_one(input));
system("pause");
return 0;
}

相关内容

热门资讯

四大平行论坛解锁垂直场景 百项... 6月27日,国际创新创业创意生态大会暨通用人工智能“满天星”挑战赛启动会在重庆人工智能湾区国际会议中...
智慧农资看农大科技:AI综合服... 6月24日至25日,由中国农资流通协会和山东农大肥业科技股份有限公司(简称:农大科技)主办的第六届智...
省内首批!汕头这一项目入选全省... 近日,广东省政务服务和数据管理局公布2026年第一批广东省公共数据“跑起来”示范场景建设清单。在汕头...
原创 国... 外媒《金融时报》独家消息,苹果正向美国监管部门提交申请,希望获批采购国产长鑫存储 DRAM 内存芯片...
GPT-5.6:最强的模型,最... 最强的模型已经造出来了,但你可能暂时用不上。 北京时间6月27日凌晨(美东时间6月26日周五),Op...
以国家安全部长:黎以美框架协议... △以色列国家安全部部长本-格维尔(资料图)当地时间27日,以色列国家安全部部长本-格维尔发表声明称,...
硬核剧透!运-20全新大片抢先... 国产大型运输机运-20即将迎来列装空军十周年纪念日中国军号发布系列照片重磅剧透来了↓↓↓
委内瑞拉男子讲述家人获救经历:... 当地时间27日,委内瑞拉全国代表大会主席豪尔赫·罗德里格斯通报称,截至目前,委内瑞拉地震死亡人数上升...
武契奇:将在数周后辞职 财联社6月28日电,当地时间6月27日,塞尔维亚执政党前进党在首都贝尔格莱德市中心举行大型集会。塞尔...
委内瑞拉强震遇难人数升至143... 当地时间27日,委内瑞拉全国代表大会主席豪尔赫·罗德里格斯通报称,截至目前,委内瑞拉地震死亡人数上升...