^ 下面的运营商是什么? 何时使用?
我的编程语言是C#。
答案 0 :(得分:9)
^
是逻辑XOR运算符,否则它是按位异或运算符
二进制^运算符是为整数类型和bool预定义的。对于整数类型,^计算其操作数的按位异或。对于bool操作数,^计算其操作数的逻辑异或;也就是说,当且仅当其中一个操作数为真时,结果才为真。
http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
答案 1 :(得分:3)
这是XOR运营商。它用于按位运算,如果左侧为真,则结果为真; 或右侧为真,但如果两者为真或两者,则结果为false / em>是假的。所以0xf8 ^ 0x3f
将是:
1111 1000
0011 1111
---------
1100 0111
这是十六进制的C7。
一般来说,如果你没有进行逐位算术,你就不用担心了。
答案 2 :(得分:1)
答案 3 :(得分:1)
示例:
101 ^
110
-----
011 //Flip the first 2, keep the 3rd
示例:
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;
}
用于二进制算术。 **这实际上很有用**
翻转一个bool(不过,我宁愿使用bool x = true; x!= x;
示例:
public bool flip(ref bool b)
{
b ^= true;
}
答案 4 :(得分:0)
我认为它是二元运算符,就像||,&&等等......
如果我正在写逻辑并最终得到:
if( (condition1 && !condition2) || (condition2 && !condition1) )
{
}
我可能会将其重写为:
if( condition1 ^ condition2)
{
}
那就是说,我会逐个基础,并且由于相对模糊而权衡了简洁与潜在混淆的好处。
答案 5 :(得分:0)
其他人提到的独家OR(XOR)运营商。这是XOR的真值表
P Q P^Q
T T F
T F T
F T T
F F F
注意P ^ Q等于P!= Q.有时在代码中使用P!= Q而不是XOR运算符。