= bitwise OR and assign example

This question already has an answer here:

  • What does “|=” mean? (pipe equal operator) 6 answers

  • a |= b;
    

    is the same as

    a = (a | b);
    

    It calculates the bitwise OR of the two operands, and assigns the result to the left operand.

    To explain your example code:

    for (String search : textSearch.getValue())
        matches |= field.contains(search);
    

    I presume matches is a boolean ; this means that the bitwise operators behave the same as logical operators.

    On each iteration of the loop, it OR s the current value of matches with whatever is returned from field.contains() . This has the effect of setting it to true if it was already true, or if field.contains() returns true.

    So, it calculates if any of the calls to field.contains() , throughout the entire loop, has returned true .


    a |= b is the same as a = (a | b)

    Boolean Variables

    In a boolean context, it means:

    if (b) {
        a = true;
    }
    

    that is, if b is true then a will be true, otherwise a will be unmodified.

    Bitwise Operations

    In a bit wise context it means that every binary bit that's set in b will become set in a . Bits that are clear in b will be unmodified in a .

    So if bit 0 is set in b , it'll also become set in a , per the example below:

  • This will set the bottom bit of an integer:

    a |= 0x01

  • This will clear the bottom bit:

    a &= ~0x01

  • This will toggle the bottom bit:

    a ^= 0x01;


  • This code:

    int i = 5;
    i |= 10;
    

    is equivalent to this code:

    int i = 5;
    i = i | 10;
    

    Similarly, this code:

    boolean b = false;
    b |= true;
    

    is equivalent to this one:

    boolean b = false;
    b = b | true;
    

    In the first example, a bit-wise OR is being performed. In the second example, a boolean OR is performed.

    链接地址: http://www.djcxy.com/p/36374.html

    上一篇: C#按位运算符

    下一篇: =按位OR并分配示例