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;

}

相关推荐
badhope5 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
码云数智-园园6 小时前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
C++ 老炮儿的技术栈6 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl6 小时前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628886 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手6 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
AI科技星7 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian8867 小时前
Java进阶——IO 流
java·开发语言·python
波特率1152007 小时前
const关键字与函数的重载
开发语言·c++·函数重载
FL16238631297 小时前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#