私はかつて、2 の累乗ではない数で除算するための短いアセンブラー コードを作成することになっていました。もっと速いものはありますか?これを整理する通常の方法は何ですか?
2 に答える
2
ウィキペディアで言及され、詳細に説明されているアルゴリズムがたくさんあります。
于 2010-02-08T11:11:13.060 に答える
2
減算の繰り返しは、危険なほど効率の悪い除算方法です。最悪の場合、N ビットの除算でO(2**N)
減算が発生する可能性があります!!
@Johannesの回答には、それよりもはるかに優れたアルゴリズムを提供するリンクがあります。
アセンブラーで除算を実装するように依頼された場合、数値ルーチンの既存のライブラリーを広範囲に検索するでしょう。これは、最適なコードに近づけるのに多くの専門知識が必要な種類の問題です。
編集:OPのコメントに応じて:
ただ、私は現在 C++ でいくつかのプログラムを作成しており、除算を使用して 1 つの問題を解決するか、別のものを作成して高速化するかを決定しています。
特定のターゲット プラットフォームで必要な結果を得るために最も効率的な命令シーケンスを生成するには、除算を使用するだけにし、C++ コンパイラに任せることをお勧めします。
于 2010-02-08T11:28:58.627 に答える