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;

}

相关推荐
嘿嘿嘿x33 分钟前
Linux记录过程
linux·开发语言
田梓燊6 分钟前
2026/4/11 leetcode 3741
数据结构·算法·leetcode
默 语11 分钟前
Records、Sealed Classes这些新特性:Java真的变简单了吗?
java·开发语言·python
止观止12 分钟前
拥抱 ESNext:从 TC39 提案到生产环境中的现代 JS
开发语言·javascript·ecmascript·esnext
斯内科16 分钟前
FFT快速傅里叶变换
算法·fft
卷心菜狗22 分钟前
Python进阶-深浅拷贝辨析
开发语言·python
时寒的笔记23 分钟前
js逆向7_案例惠nong网
android·开发语言·javascript
2301_8227032024 分钟前
开源鸿蒙跨平台Flutter开发:幼儿疫苗全生命周期追踪系统:基于 Flutter 的免疫接种档案与状态机设计
算法·flutter·华为·开源·harmonyos·鸿蒙
贵慜_Derek26 分钟前
Managed Agents 里,Harness 到底升级了什么?
人工智能·算法·架构
Evand J40 分钟前
【MATLAB例程】基于低精度IMU、GNSS的UAV初始航向(三维角度)校准的仿真,包含卡尔曼滤波、惯导解算与校正
开发语言·matlab·gnss·imu·卡尔曼滤波