java位运算符怎么算

Java 位运算符用于对二进制位执行操作,包括位操作、二进制算术和位掩码,具体包括:基础位运算符:AND (&)、OR (|)、XOR (^) 和 NOT (~)位移位运算符:左移 () 和无符号右移 (>>>)其他位运算符:赋值运算符(例如 &=、|=、^=)

Java位运算符

Java位运算符用于对二进制位(1 和 0)执行计算。它们可以用于位操作、二进制算术和位掩码。

基础位运算符

  • & (AND):对两个操作数的各个位求 AND,如果两个位都是 1,则结果为 1,否则为 0。
  • | (OR):对两个操作数的各个位求 OR,如果其中任何一个位是 1,则结果为 1,否则为 0。
  • ^ (XOR):对两个操

    作数的各个位求异或,如果两个位不同,则结果为 1,否则为 0。
  • ~ (NOT):对一个操作数的各个位取反,如果位为 0 则变为 1,如果位为 1 则变为 0。

位移位运算符

  • :将操作数向左移动指定位数,被移出的位丢弃。
  • >> (右移):将操作数向右移动指定位数,对于有符号数字,最高位被复制到移出的位中。对于无符号数字,移出的位始终为 0。
  • >>> (无符号右移):将无符号操作数向右移动指定位数,移出的位始终为 0。

其他位运算符

  • &=(AND赋值):将运算结果赋值给操作数。
  • |=(OR赋值):将运算结果赋值给操作数。
  • ^=(XOR赋值):将运算结果赋值给操作数。
  • :将运算结果赋值给操作数。
  • >>=(右移赋值):将运算结果赋值给操作数。
  • >>>=(无符号右移赋值):将运算结果赋值给操作数。

示例

// 将 10 和 11 按位与
int result = 10 & 11; // 结果:10(0b1010 & 0b1011)

// 将 10 和 11 按位异或
result = 10 ^ 11; // 结果:1(0b1010 ^ 0b1011)

// 将 10 左移 2 位
result = 10 << 2; // 结果:40(0b1010 << 2)

// 将 -10 有符号右移 2 位
result = -10 >> 2; // 结果:-3(0b11111110111111111111111111111101 >> 2)