单|或&;意思是
本文关键字:意思是 amp | 更新日期: 2023-09-27 18:28:06
可能重复:
运算符|和||之间的区别是什么
|(pipe)在c#中是什么意思?
我有一些代码是由办公室里的另一位开发人员编写的,他现在不在。我在他的代码上还有一些工作要做,但我以前从未昏迷过。我试着在这里搜索,但它把我的|从搜索行中删除了。我也不知道这个符号的名字是什么,所以无法像那样搜索它。
this.Action.Values[key] = (int)this.Action.Values[key] | 1;
我的问题是,在这种情况下,单身或做什么?
Bar(或pipe),|
是一个位OR
运算符,解释它的最简单方法是允许我们组合标志。考虑:
[Flags]
public enum WindowFlags
{
None = 0,
Movable = 1,
HasCloseBox = 2,
HasMinimizeBox = 4,
HasMaximizeBox = 8
}
使用按位OR运算符,我们可以组合标志,因此:
WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox;
我们可以"测试"给定的标志,使用:
bool isMovable = (flags & WindowFlags .Movable);
移除标志对眼球来说有点压力:
flags &= ~WindowFlags.HasCloseBox; // remove HasCloseBox flag
这些都是按位操作。
示例
011000101
| 100100100
-----------
= 111100101
011000101
& 100100100
-----------
= 000000100
此运算符仅表示OR
。
二进制|运算符是为整型和布尔预定义的。对于整型,|计算其操作数的位"或"。对于布尔操作数,|计算其操作数的逻辑或;也就是说若且仅当其两个操作数都为false时,result为false。
此处参考
请参阅c#中的所有运算符
http://en.wikipedia.org/wiki/Bitwise_operation
&=按位与|=按位OR
我相信这是一个逐位运算符。看见http://en.wikipedia.org/wiki/Bitwise_operation.
管道"|"是按位或运算符:http://msdn.microsoft.com/en-us/library/kxszd0kx.aspx
Binary |运算符是为整型和bool预定义的。对于整型,|计算其操作数的位"或"。对于布尔操作数,|计算其操作数的逻辑或;也就是说,当且仅当其两个操作数都为false时,结果为false。
http://msdn.microsoft.com/en-us/library/kxszd0kx(v=vs.100).aspx
单个|是按位OR运算符
|-->逻辑/按位OR
&-->逻辑/位AND