单|或&;意思是

本文关键字:意思是 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