题目:输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果 .提示:0 ^ 0 = 0; 1 ^ 1 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1;
#include<stdio.h>
int main()
{
int i=0;
int a=0;
int b=30;
int temp=0;
printf("Please enter number:");
scanf("%d",&a);
printf("The new value generated is:\n");
if(a<0)
{ a=-a;
printf("1");
temp=1^(a>>29&1);
printf("%c",(temp==1)?'1':'0');
b--;
}
else
{
printf("0");
}
for(i=b;i>=1;i--)
{
temp=(a>>(i+1)&1)^(a>>(i-1)&1);
printf("%c",(temp==1)?'1':'0');
}
temp=a&1;
printf("%c",(temp==1)?'1':'0');
printf("\n");
}