logo
天地变化的道理
使用率很高网站
生活要常常分享
您身边百科全书
逻辑异或
重定向;重新导向; 在-{数位;数字逻辑中,逻辑算符互斥或()是对两个运算元的一种逻辑分析类型。与一般的逻辑或不同,当两两数值相同时为否,而数值不同时为真。 对于命题 formula_1,formula_2异或formula_3通常记作formula_4或formula_5。在编程语言中,常写作codice_1。 逻辑异或相当于逻辑不等价,或者说逻辑异或的逻辑非是逻辑等价。 真值表. 异或运算formula_5的真值表如下: 无论怎样改变同一行中formula_7的位置,真值表都是成立的。 其他表示. 在数学和工程学中,常常用其他的逻辑运算符来表示异或算符。异或算符可以使用逻辑算符逻辑与formula_8,逻辑或formula_9和逻辑非formula_10表示为: formula_11 另外,异或算符可以被推广,得到关于"n"个运算元的异或运算:"n"个运算元的"n"维异或的值为真当且仅当其中值为真的运算元有奇数个。 异或也可以被表示为: formula_12 异或还可以看作是逻辑等价关系的非运算。 性质. 交换律:formula_13 结合律:formula_14 恒等律:formula_15 归零律:formula_16 对合运算:formula_17 与抽象代数的关系. 尽管算子formula_18(逻辑合取)与formula_9(逻辑析取)是逻辑系统中最为常见的算子,但结构上,系统formula_20 and formula_21只是幺半群。因此,这两个系统无法合成为一个更大的结构,比如环或半环。 但是,带有逻辑异或的系统formula_22是一个交换群。因此,算子formula_18与formula_24的结合在集合formula_25上作用就产生了最基本的二元域formula_26。这个域可以得出所有运用formula_27可以得到的结果,并且由于附带了域的结构,可以进行代数上的进一步分析。 应用. 使用异或运算交换两个 int 类型变量的数值. C/C++ void swap(int *a, int *b) { *a ^= *b; *b ^= *a; *a ^= *b; Java public void swap(int a, int b) { a ^= b; b ^= a; a ^= b; C# public void swap(ref int a,ref int b) a ^= b; b ^= a; a ^= b; Rust fn swap( num_a: &'a mut i32, num_b: &'b mut i32 ) { *num_a ^= *num_b; *num_b ^= *num_a; *num_a ^= *num_b; 虽然XOR运算可用来交换变数,但比起使用额外变数来交换变数的做法相比,效能反而比较差。
逻辑异或
生成维基百科快照图片,大概需要3-30秒!
如果网站内容有侵犯您的版权
请联系:pinbor@iissy.com
Copyright ©2014 iissy.com, All Rights Reserved.