When to use “^” operator
下面的接线员是什么?什么时候使用?
我的编程语言是C。
Binary ^ operators are predefined for the integral types and bool. For integral types, ^ computes the bitwise exclusive-OR of its operands. For bool operands, ^ computes the logical exclusive-or of its operands; that is, the result is true if and only if exactly one of its operands is true.http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
它的异或运算符。它可用于在bitwise操作,如果结果是真的左侧或右侧是真是假,如果是真的,但这是真或是假。我是这样的:
1 2 3 4 | 1111 1000 0011 1111 --------- 1100 0111 |
这是在C7是十六进制形式。
总的来说,如果你需要做bitwise算术,你不需要担心。
- 它经常被用来作为一个方法来"倒装"它与1位xoring(倒装)0(保持)。通常,这是有用的在加密/解密/散列。这实际上是有用的* * * *
例子:
1 2 3 4 | 101 ^ 110 ----- 011 //Flip the first 2, keep the 3rd |
- 它也可以被用于A交换不过,使用标准的方法理想的方式是与更多的仿制药)
例子:
1 2 3 4 5 6 7 8 9 10 | int myMoney = 10; int yourMoney = 50; Swap(myMoney, yourMoney) public void Swap(ref int a, ref int b) //No 'temp' variable necessary { a ^= b; b ^= a; a ^= b; } |
它是用来在二进制算术。这实际上是有用的* * * *
倒装a布尔(虽然,我宁愿使用bool x = true;X!= x;
例子:
1 2 3 4 | public bool flip(ref bool b) { b ^= true; } |
http://。/en-US /图书馆/ zkacc7k1(.aspx vs.71)
其独家或(XOR)操作是由上述其他。这里是真相台异或
1 2 3 4 5 | P Q P^Q T T F T F T F T T F F F |
注意到P(Q P是平等的!有时,P = Q!在代码= Q是不是异或运算符。
我认为它作为一个二元运算符|就像| &;&;等等……
如果我是一个逻辑和写作来:
1 2 3 | if( (condition1 && !condition2) || (condition2 && !condition1) ) { } |
i可能重写它。
1 2 3 | if( condition1 ^ condition2) { } |
这是说,我把它在一个由基地和基地的案例weigh福利大学brevity VS潜力相对obscurity由于混淆。