【问题标题】:what does " |= "and " ^= " mean in java? [duplicate]“|=”和“^=”在java中是什么意思? [复制]
【发布时间】:2014-02-06 19:42:56
【问题描述】:

这是一个改变图像位值的函数。 |=^= 是什么意思?

private int setBitValue(int n,int location,int bit)  {
    int toggle=(int)Math.pow(2,location),bv=getBitValue(n,location);
    if(bv==bit)
       return n;
    if(bv==0 && bit==1)
       n|=toggle;        // what does it do?
    else if(bv==1 && bit==0)
       n^=toggle;        // what does it do?

    return n;
}

【问题讨论】:

  • 问题是不管摇摆;

标签: java


【解决方案1】:

它与 += 中的缩写形式相同

n |= toogle

相同
n = n | toogle

该 |这里是二元或运算符 ^ 是二进制异或运算符

【讨论】:

    【解决方案2】:

    它们是简写赋值操作。

    n|=toggle;       is equivalent to           n=n|toggle;
    

    n^=toggle;       is equivalent to           n=n^toggle;
    

    还有

    | is bitwise OR    
    ^ is bitwise XOR
    

    【讨论】:

      【解决方案3】:

      它们是按位 OR 等于和按位 XOR 等于运算符。它们主要用于处理位标志。如果您想了解有关按位和位移操作的更多信息,我强烈推荐this article

      【讨论】:

        【解决方案4】:

        这些是速记位运算符。就像+= 使用|= 一样:

        a = a | b;
        

        阅读有关Bitwise and Bit Shift Operators 的Oracle 文档以获取更多信息。

        【讨论】:

          猜你喜欢
          • 2012-08-13
          • 1970-01-01
          • 2012-06-30
          • 2013-10-04
          • 2015-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-27
          相关资源
          最近更新 更多