写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int val
来源:互联网 发布:淘宝模特一天多少衣服 编辑:程序博客网 时间:2024/06/08 09:56
写一个函数返回参数二进制中 1 的个数
比如:15 二进制为: 0000 1111 4 个 1
程序原型:
int count_one_bits(unsigned int value)
{
// 返回 1的位数
}
如果让我们求一个十进制数中1 的个数,我们会将这个数除以10之后看余数是不是1,然后将得到的商除以10看余数是不是1,依次类推,直到商为0.
如下图解释:
那么我们求二进制数的时候也一样,将二进制除以2,看得到的余数是不是1,再用商除以2,一直到商为0为止。
如图:
代码如下:
#include<stdio.h>#include<stdlib.h>int count_one_bits(unsigned int value){ int num = 0; while(value)//value为0时跳出循环 { if(value%2)//如果余数为1,则num自加1 num++; value = value/2;//将得到的商再付给value } return num;}int main(){ int i = 0; int num = 0; printf("请输入一个正数:"); scanf("%d",&i); num = count_one_bits(i);//num为记录1 的个数 printf("num=%d\n",num); system("pause"); return 0;}
结果:
在这里,还可以用位运算解这道题。
代码如下:
#include<stdio.h>#include<stdlib.h>int count_one_bits(unsigned int value){ int num = 0; while(value) { if( (value&1) ==1) num++; value>>=1;//右移 } return num;}int main(){ int i = 0; int num = 0; printf("请输入一个正数:"); scanf("%d",&i); num = count_one_bits(i); printf("num=%d\n",num); system("pause"); return 0;}
0 0
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int val
- 1.写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int valu
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int value) { //
- 写一个函数返回参数值为1的个数 比如: 15 00001111 4个1 程序类型: int count_one_bits(unsigned int value)
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
- 写一个函数返回参数值为1的个数 比如:15 0000 1111 4个1
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中 1 的个数
- 写一个函数返回参数二进制中1的个数
- 写一个函数返回参数二进制中1的个数
- 领略千变万化的Android Drawable (一)
- 关于Spring中对象scope的单例和多例
- GreenDao的那些事
- Android 帧动画的使用场景
- Codeforces Round #368 (Div. 2) Pythagorean Triples
- 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int val
- MAC下配置环境变量
- 查询引擎原理及应用
- delegate 绑定时间多次调用问题
- 记录:DataInputStream和DataOutputStream
- 浅析C++多线程编程理论与实践
- 一、OSM简介
- mbed 更改调试信息 printf 默认输出 串口com Serial1或Serial2
- java学习日记_6:数组的初始化1.2