写一个函数返回参数二进制中1的个数(三种方法)
来源:互联网 发布:javascript 获取位置 编辑:程序博客网 时间:2024/06/06 19:49
/*方法一是最容易想到的,但是如果输入的是负数的话,那么程序就会陷入死循环 */int Numberfor1(void){ int num = 0; int count = 0; printf("请输入一个整数:"); scanf_s("%d", &num); while (num) { if (num & 1) { count++; } num = num >> 1; } printf("%d\n", count); return 0;}/*方法2:每次num和1位与运算和,‘1’左移1位。这样就不会出现输入负数就会死循环的情况。但这种方法效率较低(有多少二进制位就要循环多少次)*/int Numberfor2(void){ int count = 0; int tool = 1; int num = 0; printf("请输入一个整数:"); scanf_s("%d", &num); while (tool) { if (num & tool) { count++; } tool = tool << 1; } printf("%d\n", count); return 0;}/*最佳方法:利用num和(num-1)做位与运算,效率更高(二进制位中有多少个‘1’,就循环多少次)。*/int Numberfor3(void){ int num = 0; int count = 0; printf("请输入一个整数:"); scanf_s("%d", &num); while (num) { num = (num - 1) & num ; count++; } printf("%d\n",count); return 0;
阅读全文
0 0
- 写一个函数返回参数二进制中1的个数(三种方法)
- 我用C语言 写一个函数返回参数二进制中 1 的个数的三种不同方法
- 写一个函数返回参数二进制数中1的个数的几种方法
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- Noip提高组 2004 T4 虫食算 搜索优化
- C++不可继承类final
- [翻译]机器学习如何个性化推荐音乐
- dfdsfa
- linux内存管理之用户态内存管理
- 写一个函数返回参数二进制中1的个数(三种方法)
- 【BZOJ3990】【SDOI2015】排序
- Note8对比iPhone X,锐意进取的三星何以成为榜样?
- 2017.10.13. 读入、输出优化
- Android的Fragment BackStack回退功能
- UTF-8HTML部署到tomcat乱码
- 060 不定积分之第二类换元积分法
- openjudge noi 2987 小兔子捡金币(模拟)
- 个性桌面