簡體   English   中英

<<= 或 >>= 在 Java 中是什么意思?

[英]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 >> 2i = i << 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM