2016-05-04 24 views
-1

私は2倍する数の複数の方法があることを認識しています:最速で
数字に2を掛ける最も速い方法は何ですか?

v << 1 
v * 2 
v >> -1 
v + v 
v - -v 

は? Intel x86プロセッサでAssemblyを使用しています。

+3

どのプロセッサで最速?どのようなプログラミング言語ですか?どのコンパイラのバージョンですか?影響を与える要素が多すぎます。多くのコンパイラは、以下のコマンドを1つのコマンドに最適化します。 –

+1

'*'の何が問題なのですか? –

+0

私はIntel 4プロセッサ2.0 ghzをWindows上で組み立てて使用しています。 – trinalbadger587

答えて

1

明らかに答えは1つではありません。答えは、使用されている特定のプロセッサに依存します。

ほとんどの場合、ほとんどの場合、あなたのコードに* 2と書くだけで、効率を最大限に引き出すことができます。の効率が得られます。

本当に気になる場合は、慎重に測定する必要があります。

(また、2倍することさえv * 2v + v、とv << 1測定可能な差異がないかもしれないので、基本的なものです。)

関連する問題