【问题标题】:What is the difference between Bitwise AND & and LOGICAL AND && [duplicate]按位与 & 和逻辑与 && 有什么区别 [重复]
【发布时间】:2011-06-30 09:31:28
【问题描述】:

可能重复:
What is the difference between logical and conditional AND, OR in C#?

按位与&和逻辑与&&有什么区别?

【问题讨论】:

  • 您是否想过在任何地方查找此内容?
  • 不,奥利,没有任何资源。位和逻辑运算只存在几天,你知道吗?
  • @Femaref,我笑得停不下来......幽默感很好
  • 在某些情况下,讽刺是唯一有效的解决方案。

标签: c# programming-languages


【解决方案1】:

& 使用按位运算修改整数,即。 1000 & 1001 = 1000&& 比较布尔值。但是,& 兼作非短路逻辑,这意味着如果您有 false & true,则仍将评估第二个参数。 && 不会出现这种情况。

【讨论】:

    【解决方案2】:

    按位,顾名思义,它是 BIT 级别的 AND 操作。

    因此,如果您对两个整数执行 BITWISE AND:

    int a = 7;     // b00000111
    int b = 3;     // b00000011
    int c = a & b; // b00000011 (bitwise and)
    

    另一方面,在 C# 中,逻辑 AND 在逻辑(布尔)级别进行操作。所以你需要布尔值作为运算符,结果是另一个逻辑值:

    bool a = true;
    bool b = false;
    bool c = a && b; // c is false
    c = a && true; // c is true
    

    但仅限于逻辑层面。

    【讨论】:

      【解决方案3】:

      嗯,好问题(虽然重复)。

      按位与将影响其位级别的运算符,即循环并对每个位进行逻辑与运算。

      另一方面,

      逻辑与将使用 2 个布尔运算符来检查它们的正确性(作为一个整体)并做出决定(注意 C# 中的 bool 是 2 个字节长)。

      【讨论】:

        猜你喜欢
        • 2016-08-24
        • 2020-09-07
        • 2021-01-02
        • 1970-01-01
        • 1970-01-01
        • 2016-03-18
        • 2014-05-16
        • 2016-02-15
        • 2021-03-11
        相关资源
        最近更新 更多