在位逻辑中,或与异或的区别。

正在学习C语言,不懂 二进制的位逻辑中 或与异或的区别。希望高手们加以指点,谢谢~

1、运算规则不同:

异或如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同。异其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

2、功能不同:

按位或其功能是参与运算的两数各对应的二进位相或。异或结果为0。或只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。

3、运算符不同:按位或在C语言中用a | b表示。按位异或在C语言中用a ^ b来表示。

扩展资料:

位运算相关规则:

1、整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。

2、1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0

3、1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1

4、0 & 1 = 0, 0 | 1 = 1, 0 ^ 1 = 1

5、0 & 0 = 0, 0 | 0 = 0, 0 ^ 0 = 0

参考资料来源:百度百科-位运算

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
或:两个输入中有高电平即输出高电平
异或:两个输入若不同时为高电平或者低电平,则输出高电平,否则输出低电平

举例:
或:输入1,0,则输出1;输入1,1,则输出1,输入0,1,则输出1;输入0,0,则输出0.
异或:输入1,0,则输出1;输入1,1,则输出0,输入0,1,则输出1;输入0,0,则输出0.
第2个回答  推荐于2017-09-18
通俗的讲:
或: 有1结果则为1,全0为0
异或:相异为1,相同为0本回答被提问者采纳
第3个回答  2008-06-27
或 1 or 1= 1
异或 1 or 1 =0 ,两个操作位不同才为1 相同为0
相似回答