一个单独的 | 或 & 代表什么意思?

6
我有一些代码是由办公室里的另一个开发人员编写的,他现在不在。我需要在他的代码上进行一些工作,但我以前没有遇到过这种情况。我尝试在这里搜索,但它会将我的|从搜索行中去掉。我也不知道那个符号的名称,所以无法像那样搜索。可能重复:
什么是 | 和 || 或运算符之间的区别?
c#中的 | (pipe) 是什么意思?
this.Action.Values[key] = (int)this.Action.Values[key] | 1;

我的问题是,这种情况下单引号或双引号起到什么作用?

按位“或”和按位“与”http://zh.wikipedia.org/wiki/%E4%BD%8D%E6%93%8D%E4%BD%9C - kenny
抱歉出现了重复的帖子,正如我在问题中提到的,该网站上的搜索框会去掉 | 符号。 - Andrew
9个回答

7
条(或管道)符号|是一个按位OR运算符,最简单的解释是它允许我们组合标志。例如:
[Flags]
public enum WindowFlags
{
    None = 0, 
    Movable = 1,
    HasCloseBox = 2,
    HasMinimizeBox = 4,
    HasMaximizeBox = 8
}

使用按位或运算符,我们可以组合标志,如下所示:
WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox;

We can "test" for a given flag, using:

bool isMovable = (flags & WindowFlags .Movable);

去除标志有点让眼睛紧张:

flags &= ~WindowFlags.HasCloseBox;  // remove HasCloseBox flag

4
这些是位运算。
例子:
  011000101
| 100100100
-----------
= 111100101


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

1

这个运算符表示逻辑上的 OR

二进制 | 运算符是为整数类型和布尔类型预定义的。对于整数类型,| 计算其操作数的按位或。对于布尔操作数,| 计算其操作数的逻辑或;也就是说,仅在其两个操作数都为 false 时,结果才为 false。

参考 此处

查看 c# 中的所有运算符 此处


1

1
| --> 逻辑/按位或 & --> 逻辑/按位与

1

1

1

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

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


1

| 是位运算符中的按位或操作符


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接