不管运算对象是10进制的数还是16进制的数(或其他进制的数),进行^运算时,都是将运清缓算对象转换为二进制,按位进行异或运算。
举例说明如下:
int
a=0x9a,
b=0x56
int
c
=
a^b
//
将a和b进行异或运算
运算过程是
a
=
1001
1010
//
0x9a
b
=
0101
0110
//
0x56
c
=
1100
1100
//
0xcc
(对应的二进制位进行异或运算)
输出的时候可以按16进制输哗亩出,如:
printf("%x",
c)
异或是一个数学运算符。它应用于逻辑运算。
在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,洞亮判真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为纳改假。
在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带键握进位。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)