=按位OR并分配示例

这个问题在这里已经有了答案:

  • “| =”是什么意思? (管道相同的操作员)6个答案

  • a |= b;
    

    是相同的

    a = (a | b);
    

    它计算两个操作数的按位或并将结果赋给左操作数。

    解释您的示例代码:

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

    我认为matches是一个boolean ; 这意味着按位运算符的行为与逻辑运算符的行为相同。

    在循环的每次迭代中,它OR S的当前值matches与任何从返回field.contains() 这有其设置为效果true ,如果它已经真实的, 或者如果field.contains()返回true。

    因此,它会计算在整个循环中是否有任何field.contains()的调用返回true


    a |= ba = (a | b)

    布尔变量

    boolean上下文中,它表示:

    if (b) {
        a = true;
    }
    

    也就是说,如果b是真的,那么a将是真的,否则a将是未修改的。

    按位操作

    在一个明智的上下文中,它意味着在b设置的每个二进制位将被设置为a 。 这是明显的位b将在未修改的a

    所以如果在b设置了位0,它也将被设置为a ,如下例所示:

  • 这将设置一个整数的最低位:

    a |= 0x01

  • 这将清除最低点:

    a &= ~0x01

  • 这将切换底部位:

    a ^= 0x01;


  • 此代码:

    int i = 5;
    i |= 10;
    

    相当于这个代码:

    int i = 5;
    i = i | 10;
    

    同样,这个代码:

    boolean b = false;
    b |= true;
    

    相当于这一个:

    boolean b = false;
    b = b | true;
    

    在第一个示例中,正在执行按位OR。 在第二个例子中,执行一个布尔OR。

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

    上一篇: = bitwise OR and assign example

    下一篇: Java 8 List<V> into Map<K, V>