什么单一|或者&意思?

时间:2012-03-16 11:55:31

标签: c#

  

可能重复:
  What is the diffference between the | and || or operators?
  What does | (pipe) mean in c#?

我有一些代码是由办公室的另一位开发人员编写的,目前还没有。我在他的代码上有一些工作要做,但我以前没有昏迷。我尝试在这里搜索,但它剥离了我的|离开搜索行。我也不知道该符号的名称是什么,所以无法像那样搜索它。

this.Action.Values[key] = (int)this.Action.Values[key] | 1;

我的问题是在这种情况下单身或做什么?

9 个答案:

答案 0 :(得分:7)

Bar(或管道),|是一个按位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

答案 1 :(得分:3)

这些是按位操作。

实施例

  011000101
| 100100100
-----------
= 111100101


  011000101
& 100100100
-----------
= 000000100

答案 2 :(得分:1)

此运算符仅表示OR

  

二进制|运算符是为整数类型和bool预定义的。对于   整数类型,|计算其操作数的按位OR。对于布尔   操作数,|计算其操作数的逻辑OR;那就是   当且仅当两个操作数均为假时,结果为false。

参考here

查看c#

中的所有运算符here

答案 3 :(得分:1)

http://en.wikipedia.org/wiki/Bitwise_operation

&安培; =按位AND | =按位OR

答案 4 :(得分:1)

  

| - >逻辑/按位OR

     

&安培; - >逻辑/按位AND

答案 5 :(得分:1)

我认为这是一个有点操作员。请参阅http://en.wikipedia.org/wiki/Bitwise_operation

答案 6 :(得分:1)

管道“|”是一个按位或运算符:http://msdn.microsoft.com/en-us/library/kxszd0kx.aspx

答案 7 :(得分:1)

二进制|运算符是为整数类型和bool预定义的。对于整数类型,|计算其操作数的按位OR。对于bool操作数,|计算其操作数的逻辑OR;也就是说,当且仅当两个操作数均为假时,结果为false。

http://msdn.microsoft.com/en-us/library/kxszd0kx(v=vs.100).aspx

答案 8 :(得分:1)

单个|是按位OR运算符