C语言的异或运算

请问下面这个题目的运算结果是多少?
23|2^5

机内码(补码):
23: 00000000,00010111
2: 00000000,00000010
5: 00000000,00000101

异或优先级高,先算异或,再算位或

2^5,2与5异或,异或的法则是相同的为0,不同的为1,由上面的二进制很明显结果为:00000000,00000111
再算位或,23与此结果求或,很显然仍然为:00000000,00010111 即结果是23。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-22
异或是一个数学运算符。它应用于逻辑运算。

在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。

在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
第2个回答  2007-10-23
23 先算^,后算|
有优先级别的.
相似回答