正题

#include <stdio.h>
#include <stdlib.h> // itoa
int main()
{
int a,b,x,y;//a:数
scanf("%d",&a);
char a1[32];//用于输出二进制
char b1[32];
itoa(a,a1,2);//使进制转化的函数
//用于后面对齐好比较
int m;
for(int i=0;i<32;i++)
{
if((a1[i]!=48)&(a1[i]!=49))
{
m=i;
break;
}
}
printf("该数的二进制表示为:%s\n",a1);
x=a&0xaaaaaaaa;
y=a&0x55555555;
x=x>>1;
y=y<<1;
b=x^y;
itoa(b,b1,2);
//用于后面对齐好比较
if((m&1)==0)
{
if(a1[1]=0)
printf("交换后的结果为 %s",b1);
else
printf("交换后的结果为 %s",b1);
}
else
printf("交换后的结果为 %s",b1);
}
本文介绍了一个C语言程序,该程序使用位操作来处理整数的二进制表示。程序首先将输入的十进制数转换为二进制形式,并显示其二进制表示。然后,通过位与操作和位移操作,程序交换了输入数字中偶数位置和奇数位置的比特,最后输出交换后的结果。
413

被折叠的 条评论
为什么被折叠?



