Java按位运算符,什么是<<=,和<<一样吗

问题描述

int x = 5; x

int x = 5; x

这两者有什么区别吗?

解决方法

是的。使用 int x = 5; x <<= 1;,第二个语句修改 x。使用 int x = 5; x << 1;,第二个语句计算一个值但不修改 x。这与 **=++= 之间的区别完全相同。

事实上,第二对“语句”不会编译,因为 x << 1 不是有效的 Java 语句。