OR, AND Operator

前端 未结 8 2074
臣服心动
臣服心动 2021-02-13 15:30

Newbie question. How to calculate the value of the formula A f B, where f - the binary function OR or AND?

相关标签:
8条回答
  • 2021-02-13 16:09

    There is a distinction between the conditional operators && and || and the boolean operators & and |. Mainly it is a difference of precendence (which operators get evaluated first) and also the && and || are 'escaping'. This means that is a sequence such as...

    cond1 && cond2 && cond3
    

    If cond1 is false, neither cond2 or cond3 are evaluated as the code rightly assumes that no matter what their value, the expression cannot be true. Likewise...

    cond1 || cond2 || cond3
    

    If cond1 is true, neither cond2 or cond3 are evaluated as the expression must be true no matter what their value is.

    The bitwise counterparts, & and | are not escaping.

    Hope that helps.

    0 讨论(0)
  • 2021-02-13 16:10

    Logical OR is ||, logical AND is &&. If you need the negation NOT, prefix your expression with !.

    Example:

    X = (A && B) || C || !D;
    

    Then X will be true when either A and B are true or if C is true or if D is not true (i.e. false).

    If you wanted bit-wise AND/OR/NOT, you would use &, | and ~. But if you are dealing with boolean/truth values, you do not want to use those. They do not provide short-circuit evaluation for example due to the way a bitwise operation works.

    0 讨论(0)
  • 2021-02-13 16:10

    If what interests you is bitwise operations look here for a brief tutorial : http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx .bitwise operation perform the same operations like the ones exemplified above they just work with binary representation (the operation applies to each individual bit of the value)

    If you want logical operation answers are already given.

    0 讨论(0)
  • 2021-02-13 16:12
    if(A == "haha" && B == "hihi") {
    //hahahihi?
    }
    
    if(A == "haha" || B != "hihi") {
    //hahahihi!?
    }
    
    0 讨论(0)
  • 2021-02-13 16:15

    I'm not sure if this answers your question, but for example:

    if (A || B)
    {
        Console.WriteLine("Or");
    }
    
    if (A && B)
    {
        Console.WriteLine("And");
    }
    
    0 讨论(0)
  • 2021-02-13 16:17

    && it's operation return true only if both operand it's true which implies

    bool and(bool b1, bool b2)]
    {
     if(b1==true)
     {
       if(b2==true)
        return true;
     }
     return false;
    }
    

    || it's operation return true if one or both operand it's true which implies

    bool or(bool b1,bool b2)
    {
     if(b1==true)
     return true;
     if(b2==true)
     return true;
     return false;
    }
    

    if You write

    y=45&&34//45 binary 101101, 35 binary 100010
    

    in result you have

    y=32// in binary 100000
    

    Therefore, the which I wrote above is used with respect to every pair of bits

    0 讨论(0)
提交回复
热议问题