-5
どのコードが最適化されていますか効率的ですか?Javaで2つのプリミティブを比較する最も効率的な方法は?
double a;
double b;
if (a == b)
return true;
または
if (a - b == 0)
return true;
どのコードが最適化されていますか効率的ですか?Javaで2つのプリミティブを比較する最も効率的な方法は?
double a;
double b;
if (a == b)
return true;
または
if (a - b == 0)
return true;
a % b == 0
a
がb
に等しいことを意味するものではありません。したがって、コンパイラはこれを最適化することはできません。
他の2つについては、a == b
を明示的に使用して、最適化をコンパイラに任せてください。
もっと重要なことに、適切なコンパイラは 'a == b 'を' a - b == 0'と同じコードに最適化して*最適化します。 (例えば、浮動小数点のためではなく、 'a-b'はFPの不正確な結果例外を発生させることができますが、少なくともISO Cでは' a == b'はできません) –
どの言語ですか?非常に特定のシステムで作業しない限り、1つの操作であるため、最初の操作は最速でなければなりませんが、他の操作がどこかでより高速になることは疑いがあります。 – HopefullyHelpful
これらは非常に異なることに注意してください。 'a = 4、b = 2' ...そして' a%b == 0'を考えてみましょう。ただし、 'a!= b'です。 –
あなたのタイトルは恐ろしいです、それはあなたの質問とは関係ありません、それを探している人は決してそれを見つけることはありません。比較や平等に関して何かに名前を変更してください。 – HopefullyHelpful