C语言
中^为按位
异或运算
符,若两个二进制位相同,则结果为0,不同为1
#include "stdio.h"
main()
{
int a=6,b=10,c;
c=a^b;
printf("%d",c);
}
函数 输出结果为12
将6和10分别转换为2进制数为0110(前边补了个0)和1010。然后按照定义进行 异或运算
0110 a
1010 b
1100 a和b最左边第一位和第二位不相同,所以分别为1,第三位和第四位相同,所以分别为0
#include "stdio.h"
main()
{
int a=6,b=10,c;
c=a^b;
printf("%d",c);
}
函数 输出结果为12
将6和10分别转换为2进制数为0110(前边补了个0)和1010。然后按照定义进行 异或运算
0110 a
1010 b
1100 a和b最左边第一位和第二位不相同,所以分别为1,第三位和第四位相同,所以分别为0
二进制数1100转换为10进制数,结果是12。
异或:若参加运算的两个二进制位同号,则结果为0;异号则为1.即 0异或0=0,1异或0=1,1异或1=0. 应用: 1.使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与00001111进行异或运算。结果为01110101 2.与0异或,保留原值。如012异或00=012. 3.交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现: a=a异或b; b=b异或a; a=a异或b;