1.写一个函数返回参数二进制中 1 的个数
int count_one _bits( unsigned int n){
int count=0;int n=0;
scanf("%d",&n);.
while(n){
n=n&(n-1);
count++;
}
2..获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
include <stdio.h>
int main() //偶数位
{
int num=0,i=0;
char p;
scanf("%d",&num);
for (i=31; i>=0;i=i-2)
{
p=(num>>i)&1;
printf("%d",p);
}
return 0;
}
include <stdio.h>
int main() // 奇数位
{
int num=0,i=0;
char p;
scanf("%d",&num);
for (i=30; i>=0;i=i-2)
{
p=(num>>i)&1;
printf("%d",p);
}
return 0;
}
#3. 输出一个整数的每一位。
#include<stdio.h>
int main(){ //逆序,非正序
int n=0;int e=0;
scanf("%d",&n);
while(n){
e=n%10;
n=n/10;
printf("%-2d",e);
}
}
4..编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
include <stdio.h>
include <stdlib.h>
int main()
{
int i = 0;
int x = 1999;
int y = 2299;
int count = 0;
for (i = 0; i < 32; i++)
{
if ((x % 2) ^ (y % 2) == 1) //核心代码
{
count++;
}
x /= 2; //右移一位,逐位比较
y /= 2;
}
printf(“%d\n”, count);
system(“pause”);
return 0;
}