【问题标题】:What does a single | or & mean? [duplicate]什么是单 |或 & 是什么意思? [复制]
【发布时间】:2012-04-01 23:10:38
【问题描述】:

可能重复:
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;

我的问题是,在这种情况下,single or 做什么?

【问题讨论】:

标签: c#


【解决方案1】:

条形(或管道)| 是按位操作的OR,解释它的最简单方法是它允许我们组合标志。考虑:

[Flags]
public enum WindowFlags
{
    None = 0, 
    Movable = 1,
    HasCloseBox = 2,
    HasMinimizeBox = 4,
    HasMaximizeBox = 8
}

使用按位或运算符,我们可以组合标志,因此:

WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox;

我们可以“测试”给定的标志,使用:

bool isMovable = (flags & WindowFlags .Movable);

去除旗帜对眼球的压力更大:

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

【讨论】:

    【解决方案2】:

    这些是按位运算。

    例子

      011000101
    | 100100100
    -----------
    = 111100101
    
    
      011000101
    & 100100100
    -----------
    = 000000100
    

    【讨论】:

      【解决方案3】:

      这个运算符的意思只是OR

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

      参考here

      查看c#中的所有运算符here

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          我相信这是一个按位运算符。见http://en.wikipedia.org/wiki/Bitwise_operation

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                【解决方案8】:

                单个 |是按位或运算符

                【讨论】:

                  【解决方案9】:

                  | --> 逻辑/按位或

                  & --> 逻辑/位与

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2020-10-27
                    • 2015-07-15
                    • 2018-07-17
                    • 2012-08-13
                    • 1970-01-01
                    • 2019-09-12
                    • 2015-01-22
                    • 2011-12-23
                    相关资源
                    最近更新 更多