一、同或异或的区别?
同或和异或是逻辑运算符号,在计算机领域中常被使用。
异或(XOR)操作符表示当两个操作数不相同时结果为1,否则结果为0。举个例子:假设有两个二进制数字1010和1100,进行异或运算,结果是0110。在计算机中,异或操作通常用于数据加密、纠错码和数据校验等领域。
同或(XNOR)操作符表示当两个操作数相同时结果为1,否则结果为0。同样来看一个二进制数字的例子:假设有两个数字1010和1100,进行同或运算,结果是1001。同或操作也被广泛应用于数字电路中,特别是在布尔代数和逻辑门的设计中。
在实际应用中,同或操作符通常需要进行复杂的逻辑设计,因为同或运算与其他运算符的组合可以实现各种逻辑功能,例如与非门和或非门等。异或操作符则比同或操作符更加常见和简单,因为异或运算符在逻辑电路中常常用于实现基本逻辑功能,例如逻辑门和触发器等。
需要注意的是,同或操作符和异或操作符的结果可能不同,因此在应用中需要根据实际需求选择合适的操作符。
二、同或异或的运算?
运算法则:相同为1,不同为0
运算符号:⊙
表达式:a⊙b=ab+a'b'(a'为非a,b'为非b);
异或运算
运算法则:相同为0,不同为1
运算符号:⊕
表达式 :a⊕b=a'b+ab'(a'为非a,b'为非b)
异或运算的常见用途:
(1) 使某些特定的位翻转
例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。
10100001^00000110 = 10100111
(2) 实现两个值的交换,而不必使用临时变量。
例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110
位移运算
左移运算
运算符:<<
表达式:m<
运算规则:左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0
eg:00001010 << 2 = 00101000
右移运算
运算符:>>
表达式:m>>n(表示把m右移n位)
运算规则:右移n位的时候,最右边的n位将被丢弃。 这里要特别注意,如果数 字是一个无符号数值,则用0填补最左边的n位。如果数字是一个有符号数值,则用数字的符号位填补最左边的n位。也就是说如果数字原先是一个正数,则右移之后再最左边补n个0;如果数字原先是负数,则右移之后在最左边补n个1
eg: 00001010 >> 2 = 00000010
eg: 10001010 >> 3 = 11110001
补充:二进制中把最左面的一位表示符号位,0表示正数,1表示负数
按位与运算
运算符:&
表达式: 00000101 & 00001100 = 00001000
按位或运算
运算符:|
表达式:00000101 | 00001100 = 00001110
按位与按位或用途:
typedef NS_ENUM(NSInteger, TestType){ //定义枚举
TestTypeNone = 0,
TestTypeFirst = 1<<0,
TestTypeSecond = 1<<1,
TestTypeThird = 1<<2,
TestTypeFourth = 1<<3
};
//测试代码
TestType type = TestTypeFirst | TestTypeFourth;
if (type & TestTypeFirst) {
NSLog(@"TestTypeFirst");
}
if (type & TestTypeSecond) {
NSLog(@"TestTypeSecond");
}
if (type & TestTypeThird) {
NSLog(@"TestTypeThird");
}
if (type & TestTypeFourth) {
NSLog(@"TestTypeFourth");
}
if ((TestTypeFirst | TestTypeThird) & (TestTypeSecond | TestTypeFourth)) {
NSLog(@"(TestTypeFirst | TestTypeThird) & (TestTypeSecond | TestTypeFourth)");
}
if ((TestTypeFirst | TestTypeThird) & (TestTypeSecond | TestTypeThird | TestTypeFourth)) {
NSLog(@"(TestTypeFirst | TestTypeThird) & (TestTypeSecond | TestTypeThird | TestTypeFourth)");
}
//输出结果
TestTypeFirst
TestTypeFourth
(TestTypeFirst | TestTypeThird) & (TestTypeSecond | TestTypeThird | TestTypeFourth
三、异或同或逻辑公式?
异或(XOR)和同或(XNOR)是两种逻辑运算。它们的公式如下:
异或(XOR):当两个输入值不同时,输出为1,否则输出为0。
A XOR B = (¬A ∧ B) ∨ (A ∧ ¬B)
同或(XNOR):当两个输入值相同时,输出为1,否则输出为0。
A XNOR B = (A ∧ B) ∨ (¬A ∧ ¬B)
其中,符号“∧”表示逻辑与(AND),符号“∨”表示逻辑或(OR),符号“¬”表示逻辑非(NOT)。
四、证明A同或B同或C与A异或B异或C相等?
注:下列式中用@表示同或,用*(X)表示非X
A⊕B⊕C=(A⊕B)⊕C
=(A⊕B)*(C)+*(A⊕B)C 【⊕定义】
=*(A@B)*C+(A@B)C 【⊕与@互反】
=(A@B)@C 【@定义】
=A@B@C
五、异或和同或的区别?
同或和异或互为非运算
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
异或略称为XOR、EOR、EX-OR
同或”是一个数学运算符,应用于逻辑运算。 其运算法则为a同或b=ab+a‘b’(a'为非a)。
真“同或”假的结果是假,假“同或”真的结果也是假,真“同或”真的结果是真,假“同或”假的结果是真。就是说两个值相同,则同或结果为真。反之,为假。——简称同真,异假。即,同或:相同为一,不同为零。
同或符号为⊙。(圆圈内为点)
六、同或和异或的符号?
同或和异或互为非运算。
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b),如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
词汇释义
“同或”是一个数学运算符,应用于逻辑运算。 其运算法则为a同或b=ab+a‘b’(a'为非a)。
真“同或”假的结果是假,假“同或”真的结果也是假,真“同或”真的结果是真,假“同或”假的结果是真。就是说两个值相同,则同或结果为真。反之,为假。——简称同真,异假。即,同或:相同为一,不同为零。
七、同或和异或的规律?
同或是相同则有,异或是不同则有。
八、异或和同或怎么理解?
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b=(¬a∧b)∨(a∧¬b)如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
“同或”可以是一个数学运算符,应用于逻辑运算。其运算法则为a同或b=ab+a‘b’(a'为非a),即a和b相同为真,不同为假。也可以表示其它的含义。或非是一种逻辑算法,常在计算机中以“或非门”的形式存在。“或非”和析取的否定是等价的。表示为:NOR。
九、异或同或转化具体步骤?
先列真值表,让F=a异或b异或c。可知当abc为001,010,100,111时F为1,然后画卡诺图,四个1都不相邻,得F=a'bc'+a'b'c+ab'c'+abc,(a'就是a非的意思),然后对F两次取反,就得到F=((a'bc')'(a'b'c)'(ab'c')'(abc)')'。这就是与非表达式了。
十、异或非是不是等于同或?
谢邀, 这样理解,例子如下:A 同或 B = ~(A 异或 B)A 同或 B 同或 C 同或 D= ~(A 异或 B 异或 C 异或 D)再自己试一下真值表就知道了。
- 相关评论
- 我要评论
-