我正在研究何时想要/应该使用位移运算符。我知道我们不需要使用它们来乘以 2 等,因为 JIT 编译会处理这个问题。我遇到了为什么我们需要在 java 中使用移位运算符,并且对部分接受的答案感到困惑:
For example, say I have two bytes that are the high-order and low-order bytes
of a two-byte (16-bit) unsigned value. Say you need to construct that value.
In Java, that's:
int high = ...;
int low = ...;
int twoByteValue = (high << 8) | low;
You couldn't otherwise do this without a shift operator.
To answer your questions: you use them where you need to use them! and nowhere else.
我知道我遗漏了一些东西,因为在我看来,他只是将高乘以 2^8 并将其加到低(我以前从未真正见过|
在这种情况下使用过,但是当我插入虚拟值并运行时我的代码,看起来只是将两者加在一起)。这里到底发生了什么?
编辑:作为参考,我有high = 10
and low = 3
。