C (统计二进制中“1“的个数)

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int num_of_1(int n)

{

//1.数学方法

//int count = 0;

//while (n)

//{

// if (n % 2 == 1)

// {

// count++;

// }

// n /= 2;

//}

//return count; // 由于负数的反码特殊,所以函数接收调整为无符号整形

//2.与运算+位运算 >

//int count = 0;

//while (n)

//{

// if (n & 1 == 1)

// {

// count++;

// }

// n >>= 1; // 由于负数的进制位移动时左边可能不补零,所以函数接收调整为无符号整形

//}

//return count;

//2.与运算+位运算 > (改进型,对整形的正负无要求)

int count = 0;

int i = 0;

for (i = 0; i < 32; i++)

{

if (((n >> i) & 1 ) == 1)

{

count++;

}

}

return count;

//3. x & (x-1) 特殊运算

//int count = 0;

//while (n)

//{

// n = n & (n - 1);

// count++;

//}

//return count;

}

//统计二进制中 '1' 的个数

int main()

{

//输入10进制整数

int input = 0;

printf("请输入整数:");

scanf("%d", &input);

//计算并输出

int ret;

ret = num_of_1(input);

printf("%d 的二进制格式中'1'的个数为:%d\n", input, ret);

return 0;

}

相关推荐
鶴哥只手遮天2 小时前
OpenFOAM 源码深度剖析 · 第二季-03 拉格朗日粒子与喷雾:`Cloud`/`parcel` 模板体系、运动积分与子模型群
算法·开源
hetao17338372 小时前
校内场-提高组 ZYZSC-S-Round 2
c++·算法
小严不想当码农2 小时前
icpc 亚洲区域赛补题链接整理
算法
xiaok2 小时前
Compositor图编辑器
算法
CAD开发小慧2 小时前
CAE软件开发:Coreform为何用ACIS处理CAD几何?
算法·架构·计算机图形学
七牛云行业应用2 小时前
DeepSeek Harness 自定义 Skill 教程:从 SKILL.md 到可复用 Agent 工作流
算法·github
hetao17338372 小时前
2026-10-14 hetao1733837 的刷题记录
c++·算法
临床数据科学和人工智能兴趣组2 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
蜗牛互联网2 小时前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
罗斯8392 小时前
Datalog与安全分析
算法·安全·网络安全