按位异或运算符(^):在二进制中,当两个操作数的对应位相同时置0,否则为1。例如:


a:0111 1010   b:0101 1010    a^b=0010 0000;


题1.编写程序,交换两个数的内容,要求:创建临时变量。


#include<stdio.h>

int main()

{

int a;                  

        int b;  

int temp;

   scanf("%d%d",&a,&b); 

   temp=a;

   a=b;

   b=temp;

   printf("a=%d,b=%d\n",a,b);

  return 0;

}

输入:10 8

结果:a=8 b=10


题2.编写程序,交换两个数的内容,要求:不创建临时变量(使用异或运算)。

#include<stdio.h>

int main()

{

int a;                     //10=1011

int b;                    // 8=1000 

scanf("%d%d",&a,&b); 

a=a^b;                   //a=0011

b=b^a;                   //b=1011

a=a^b;                   //a=1000

printf("a=%d,b=%d\n",a,b);

return 0;

}

输入:10 8

结果:a=8 b=10