易百教程

编写程序:应用两次XOR运算符

编写程序以应用XOR运算两次

提示
如果对变量使用相同的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);
    printf("^ %s %3d\n",to_binary(x),x);
    a = r ^ x;
    printf("= %s %3d\n",to_binary(a),a);
    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
^ 10101010 170
= 01001001  73