c语言中同或、异或怎么表示

如题所述

1、概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算

2、运算规则:0&0=0; 0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为0【有0则0】

例如:3&5=1,即0000 0011 & 0000 0101 = 0000 0001

3、“与运算”特殊用途:

(1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

(2)取一个数中指定位。找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。

例:设X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;还可用来取X的2、4、6位。

二、按位或(|)

1、概念:参加运算的两个对象按二进制位进行“或”运算,负数按补码形式参加按位与运算。

2、运算规则:0|0=0;0|1=1;1|0=1;1|1=1;即 :参加运算的两个对象只要有一个为1,其值为1【有1则1】

例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111

3、“或运算”特殊作用:

(1)常用来对一个数据的某些位置1。找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。

例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。

三、异或运算(^)

1、概念:参加运算的两个数据,按二进制位进行“异或”运算

2、运算规则:0^0=0;0^1=1;1^0=1;1^1=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0【同0异1】

例如:3^5=6,即0000 0011^0000 0101 = 0000 0110

3、“异或运算”特殊作用:

(1)使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。

(2)与0相异或,保留原值 ,X ^ 0000 0000 = 1010 1110。

例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。

(3)基于异或运算,不引用新变量交换两个变量的值

a = a ^ b; b = a ^ b; a = a ^ b;

【同样基于加减法的话有:a = a + b; b = a - b; a = a -b;】

四、不同长度的数据进行位运算

如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。

以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,

(1)如果整型数据为正数,左边补16个0。

(2)如果整型数据为负数,左边补16个1。

(3)如果整形数据为无符号数,左边也补16个0。

如:long a=123;int b=1;计算a & b。

如:long a=123;int b=-1;计算a & b。

如:long a=123;unsigned int b=1;计算a & b。
温馨提示:内容为网友见解,仅供参考
第1个回答  2022-08-23
异或有专门的操作符^,但是同或要根据异或来计算得出
int a=3,b=4

c=a^b 异或
d=!(a^b)同或

c语言中同或、异或怎么表示
1、概念:参加运算的两个数据,按二进制位进行“异或”运算 2、运算规则:0^0=0;0^1=1;1^0=1;1^1=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0【同0异1】例如:3^5=6,即0000 0011^0000 0101 = 0000 0110 3、“异或运算”特殊作用:...

c中的异或是什么
在C语言中,异或(XOR)是一种位运算操作符,用符号`^`表示。异或运算对两个数的二进制表示进行逐位比较,如果两个相应的位相同,则结果位为0;如果两个相应的位不同,则结果位为1。这种运算在多种场景下都非常有用,比如在不使用临时变量的情况下交换两个变量的值、进行简单的加密解密操作等。具...

与、或、非的符号表示
在逻辑运算中,与、或、非、同或、异或的符号表示分别是:∧、∨、¬、⇔、⊕。1. 与运算(∧)符号表示:通常用“∧”表示,也可用乘号“×”表示。逻辑表达式A∧B代表A和B同时为真时结果为真,否则为假。2. 或运算(∨)符号表示:通常用“∨”表示,也可用加号“+”表示。逻辑...

C语言里的按位异或运算符
异或运算符∧也称XOR运算符,它的作用是判断参加运算的两个二进制位是否为同号,若同号则结果为0;异号则为1。即0异或0=0,1异或0=1,1异或1=0。应用:1、使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与0000111进行异或运算,结果为01110101。2、与0异或,保留原值。如012异或00=01...

与、或、异或、同或的区别是什么?
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以...

在c语言中异或的用法是什么?
在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

“异或”和“同或是”什么逻辑关系?
异或可以理解为二进制中的半加法,不考虑进位,如0⊕0=0,1⊕0=1,1⊕1=0。同或的运算则遵循a⊙b = ab + a'b',其中a'表示a的非(即真变假,假变真)。同或的特性在于,当两个输入相同时,结果为真(1),不同则为假(0)。简言之,同或可以看作是相同为真,不同为假的逻辑操作...

在C语言中,&,丨,^的运算规则是什么
0 1 & 1 = 1 2、|:位或运算,遇1得1,即 0 | 0 = 0 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1 3、^:异或运算,在或的基础上1异或1得0 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0 \/\/这是与或不同的地方。4、注意,在C语言中,位运算只能操作整型数据。

请问C语言中的逻辑异或^怎么用?
必须不同才为真(1),否则为假(0)例如两个2进制数异或 10110100 01101010 11011110 第三行为上面两行2进制数异或的结果

同或和异或的符号
1. 同或(AND)和异或(XOR)的定义 同或和异或都是逻辑运算符,用于比较两个二进制数字的值。同或(AND)运算符在两个二进制数字的都为1时返回1,否则返回0;而异或(XOR)运算符则是在两个二进制数字不相同时返回1,否则返回0。2. 同或和异或的使用场景 同或和异或都是经常在编程中使用的...

相似回答
大家正在搜