什么是“>>=”运算符?

what is " >>= " operator?

>>=运算符是什么意思?

示例代码:

int rangeBitCount(int a, int b) {

  int ans = 0;
  for (int i = a; i < b; i++) {
    int t = i;
    while (t != 0) {
      ans += t & 1;
      t >>= 1;
    }
  }

  return ans;
}

这是Right shift assignment运算符。

右移赋值运算符将指定数量的位向右移动并将结果赋值给变量。有关详细信息,请参阅右移运算符。

Syntax

Operator: x >>= y
Meaning: x = x >> y

在你的例子中 t >>= 1; 等同于 t = t >> 1;。这意味着 t 的值将向右移动 1 位。