我正在 W3schools 学习 Java 中的赋值运算符。但我不明白这两个运算符是什么意思?
最佳答案
这些是赋值运算符的示例。本质上,它们都在一次操作中对变量执行算术运算,并将其结果分配给该变量。大多数情况下,它们相当于分两步完成:
int a = 23;
int b = 2;
a += b; // addition - same as `a = a + b`
a -= b; // subtraction
a *= b; // multiplication
a /= b; // floor division
a %= b; // modulo division
a &= b; // bitwise and
a |= b; // bitwise or
a ^= b; // bitwise xor
a >>= b; // right bitshift
a <<= b; // left bitshift
您所询问的尤其是位移操作。它们采用数字的二进制表示形式,并将其向左或向右移动给定的位数,用零填充缺失的空格。例如,23的二进制表示为00010111
.
所以,23 << 2
将等于 01011100
,或 92;而23 >> 2
将等于 00000101
,或 5。
您也可以将其视为使用 2 的幂进行整数乘法或除法:
-
a << b
通常会产生与a * Math.pow(2, b)
相同的结果 -
a >> b
通常会产生与a / Math.pow(2, b)
相同的结果
关于java - Java 中 <<= 或 >>= 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67782113/