C# 特殊运算符 |,&,^的运用

项目中遇到点特殊运算符,很久没有使用了,就研究了下,分享出来,提供给圈友们,多多指点:

(注:不说在计算机二进制内的位运算,单讲C#)

&,|,^ 我们知道除了用于位运算,还可以用于逻辑运算,分别对应与,或,异或。
下面详细看看:
^ 运算符针对整型类型和 bool 预定义了二元 ^ 运算符。 
对于整型类型,^ 会计算其操作数的按位异或。 
对于 bool 操作数,^ 计算其操作数的逻辑异或;
即,当且仅当其一个操作数为 true 时,结果才为 true。
Console.WriteLine(true ^ false);  // 返回 true
Console.WriteLine(false ^ false);  // 返回 false
Console.WriteLine(true ^ true);  // 返回 false

| 运算符针对整型类型和 bool 预定义了二元 | 运算符。 
对于整型类型,| 会计算其操作数的按位 OR。 
对于 bool 操作数,| 会计算其操作数的逻辑 OR;
即,当且仅当其两个操作数皆为 false 时,结果才为 false。
如:
Console.WriteLine(true | false);  // 返回 true
Console.WriteLine(false | false); // 返回 false

& 运算符为整型类型和 bool 预定义了二元 & 运算符。 
对于整型类型,& 计算其操作数的逻辑按位 AND。 
对于 bool 操作数,& 计算其操作数的逻辑 AND;
即,当且仅当其两个操作数皆为 true 时,结果才为 true。
Console.WriteLine(true & false);  // 返回 false
Console.WriteLine(true & true);   // 返回 true

其中&,|的运算结果与&&,||完全相同,但&&和||的性能更好。
因为&&和||都是检查第一个操作数的值,如果已经能判断结果,就根本不处理第二个操作数。
比如:
bool a = true;               
bool b = false;              
bool c = a || b;
检查第一个操作数a时已经得出c为true,就不用再处理第二个操作数b了。

猜你喜欢

转载自blog.csdn.net/ln_prince_angelllove/article/details/80046051