質問1
Javaでは、単一のステートメントを使用して同じ数だけシフトするよりも、シフトする方が何倍もコストがかかりますか?
たとえば、
int x = 5;
x = x << 16;
より速い
int x = 5;
for (int i=0; i<16; ++i) {
x = x << 1;
}
さらに、どうでしょう
int x = 5;
for (int i=0; i<16; ++i) {
x = x*2;
}
編集: "x << 16" の正確なパフォーマンスは? 「x << 1」と同じ速さですか?
質問2
StackOverflow ユーザーの時間を無駄にする必要がないように、Java でさまざまなビット単位の操作パフォーマンスを判断するために利用できるオンラインのリソースはありますか? :-)