5

どちらのバージョンが速いですか? x * 0.5 or x / 2

しばらく前に、大学でコンピュータ システムというコースを受講したことがあります。当時から、2つの値の乗算は比較的「単純な」論理ゲートで実現できることを覚えていますが、除算は「ネイティブ」操作ではなく、ループ内に除数を増やして被除数と比較する合計レジスタが必要です。

今、私は多くの部門でアルゴリズムを最適化する必要があります. 残念ながら、2で割るだけではないため、バイナリシフトはオプションではありません。すべての割り算を掛け算に変更すると違いはありますか?

アップデート:

コードを変更しましたが、違いに気づきませんでした。おそらく、コンパイラの最適化については正しいでしょう。すべての回答が素晴らしかったので、すべてに賛成票を投じました。素晴らしいリンクがあるため、ラーフルの回答を選択しました。

4

5 に答える 5

4

1 回の計算であればほとんど違いに気付かないでしょうが、何百万ものトランザクションについて話すと、間違いなく除算は乗算よりもコストがかかります。最も明確で読みやすいものはいつでも使用できます。

このリンクを参照してください:-乗算または除算を使用する必要がありますか?

于 2012-10-19T15:12:11.530 に答える