[英]What does <<= or >>= mean in Java?
我在 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 的冪進行 integer 乘法或除法:
a << b
通常會產生與a * Math.pow(2, b)
相同的結果a >> b
通常會產生與a / Math.pow(2, b)
相同的結果 這是一個簡短的表達式,就像i = i >> 2
和i = i << 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.