繁体   English   中英

java按位运算符和等号; 复合运算符

[英]java bitwise operators and the equal character; compound operators

我有点困惑:

long v = 0;
v <<= 8; 
v |= 230;

我知道<<是带符号的左移运算符,并且| 按位“或”运算符,但我对相等表示感到困惑吗?

因此,拳头v是0。所以<<没有任何作用吗? 然后等于1000,但是那又会怎样呢?

编辑:我已经编辑标题,以便其他人可能会更好地找到这个问题:添加了“复合运算符”

它们是复合运算符,例如+=-=是。 他们进行运算,然后将结果分配回v

基本上:

v <<= 8;

有效

v = v << 8;

同样

v |= 230;

有效

v = v | 230;

您可以使用+=-=看到并行:

v += 1;

有效地

v = v + 1;

有些像+=

例如x+=3表示将3加到x上; 存储到x。

v <<= 8;

将v左移8位,并存储到v,在功能上等效于v=v << 8

v |= 230;

与230进行按位“或”运算并存储回v,等效于v=v | 230 v=v | 230

现在,由于性能限制和优化,此操作可能会较低级别完成。

基本上,这是:

v <<= 8; 
v |= 230;

等效于此:

v = v << 8; 
v = v | 230;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM