写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
程序原型:
int count_one_bits(unsigned int value)
{
// 返回 1的位数
}
2.获取一个数二进制序列中所有的偶数位和奇数位,
分别输出二进制序列。
- 输出一个整数的每一位。
4.编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
1.
//#include<stdio.h>//对一个二进制数求他共有多少个一
//#include<stdlib.h>
//int count_one_bits(unsigned int value)
//{
// int num=0;
// while(value)
// {
// if(value%2)
// num++;
// value=value/2;
// }
// return num;
//}
//int main()
//{
// int i=0;
// printf("请输入一个数\n");
// scanf("%d",&i);
// count_one_bits(i);
// printf("%d\n",count_one_bits(i));
// system("pause");
// return 0;
//}
//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
// int num, i,b[32];
// printf("please enter a number:\n");
// scanf("%d", &num);
// for (i = 0; i <= 31; i++)
// {
// if ((num >> i) & 1)
// b[i] = 1;
// else
// b[i] = 0;
// }
// printf("偶数序列为:\n");
// for (i = 31; i >= 1; i -= 2)// **i=1时实际能访问到二进制数的第二位**
// {
// printf("%d", b[i]);
// }
// printf("\n");
// printf("奇数序列为:\n");
// for (i = 30; i >= 0; i -= 2)// **i>=0能够访问到二进制数的第一位**
// {
// printf("%d", b[i]);
// }
// system("pause");
// return 0;
//}
#include<stdio.h>
int print(int n)
{
if(n>9)//**当数字不满足9的时候跳出**
{
print(n/10);
}
printf("%d ",n%10);
}
int main()
{
int i=0;
printf("请输入一个数字\n");
scanf("%d",&i);
print(i);
return 0;
}
#include<stdio.h>
int print(int m, int n)
{
int count=0;
while(m)
{
if(m%2 != n%2)//**判断俩个二进制数的最后一位是否相同**
{
count++;
}
m>>=1;//**俩个数分别→移动一位**
n>>=1;
}
return count;
}
int main()
{
int m = 0;
int n = 0;
scanf("%d %d",&m,&n);
print(m,n);
printf("%d\n",print(m,n));
return 0;
}