易百教程

仅使用XOR运算符操作

XOR是异或运算符。在XOR运算中,按位彼此进行比较,就像|一样运算符。

当两个位相同时,XOR返回0。当两位不同时,XOR返回1。C语言XOR运算符是插入字符:^

示例代码

#include <stdio.h> 

char *to_binary(int n); 

int main()
{ 
   int a,x,r; 

   a = 73; 
   x = 170; 

   printf("  %s %3d\n",to_binary(a),a); 
   printf("^ %s %3d\n",to_binary(x),x); 
   r = a ^ x; 
   printf("= %s %3d\n",to_binary(r),r); 
   return(0); 
} 

char *to_binary(int n) 
{ 
   static char bin[9]; 
   int x; 

   for(x=0;x<8;x++) 
   { 
       bin[x] = n & 0x80 ? '1' : '0'; 
       n <<= 1; 
   } 
   bin[x] = '\0'; 
   return(bin); 
}

编译并执行上面示例代码,得到以下结果:

hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
  01001001  73
^ 10101010 170
= 11100011 227