[英]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.