私はいつビットシフト演算子を使いたい/使うべきかを調べていました。JIT コンパイルがそれを処理するため、2 で乗算するためにそれらを使用する必要がないことを理解しています。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 を掛けて低値に足しているように見えるからです (これまで|
このコンテキストで使用されているのを実際に見たことはありませんが、ダミー値を差し込んで実行したとき私のコードでは、2つを一緒に追加しているように見えました)。ここで実際に何が起こっているのですか?
編集:参考までに、私はhigh = 10
とを持っていましたlow = 3
。