コードを最適化C言語

G

Guest

Guest
こんにちはすべて、

私はコードが必要Cの最適化ウルに役立ちます。

私は"を&"したい%を知ってどのように置き換えて"/"Cで

アプリケーションでは私の私は商を見つけるリマインダー&ための関数を使用してこの2つ。

のような

6505/1000 = 6
6505パーセント1000 = 505

plzは、コードを与える私に良い私のロジックを最適化するので、私は

事前に感謝.........

よろしく
チーク属

 
引用:

私はどのように"%"&"を置き換えるかを知りたい/"Cで
 
2の累乗で除算は、シフトで簡単です左


16分の6505
6505>> 4
6505 / 1000 =(6505>> 3)/ 125

 
こんにちは、これを最適化しようとしないでください。コンパイラではほとんどのC私は効率的に知って非常にこれは完了です。ほんの数のasm指示に従います。

最適化する場合する場合は:

削除:

乗算機能¥。Xの場合を除き、*の値はn ^ 2
本部機能¥します。されない限り値は、X / Nの^ 2
他のすべての数学。
XORまたはANDでそれらを試してくださいに置き換えてください。

最適化の中にループします。

アップテーブル可能¥であれば見て使用。しかし、1次元ではない使用するマルチスティックしようとするとの次元の配列です。

のための:xxtigerxx

良いCコンパイラは、コードを作ると同じです。

Xの= 16分の6500とX = 6500>> 4ポール。

 
私はすべてにいる推測ことなしに、マイクロコントローラがが遅い分割オペコードを、または、あなたはしないコンパイラのようなCのコードを生成します。コンパイラみて検索してマイクロコントローラ'をネットのためにより良い特定のコンパイラ、または最適化された検索の分割アルゴリズム。

 
サポートウルのおかげでは、

私は実行&高速メモリのコードに必要な、この最適化のために削減します。

私は操作の実行この基本的な算数18階の使用マイクロコントローラのために、このルーチンは、コントローラ自身のコンパイラを返すのようにそこにあるない分割命令が。

私はコンパイラを使用するハイテクPICC18の。

私が知っているか|さにfindoutメソ¥ッドがすべて使用して結果 を、 -または>>、<<、&、。

なぜなら私は私の分は、修正プログラムは1000だ。

サポートウルのおかげです。

よろしく
チーク属

 
この場合のような何かを実行してください1000は、除算は常に:

コード:/ * 1000で32ビットの数を分割すると仮定

1000は12ビットの番号*が/#は、5連続(定義32から12)

int型一;

= 1000 <を<5連続int型。

int型の配当= 6506;

int型の残り=配当;

int型商= 0;(私= 5連続のは、i> = 0;私は - )



商<<= 1;

(剰余> = 1)場合、



商 ;

残り-= 1;



>> = 1;



/ *商と剰余が正しい*です/

 
こんにちはjonw0224

私は1(PICCはコンパイラの実行コードをC言語の

<img src=¥"http://www.edaboard.com/images/smiles/icon_cool.gif¥" alt=¥"クール¥" border=¥"0¥" />

しかし、このコードが動作しないことができます。

サポートおおかげです。

よろしく
チーク属

 
jonw0224のコードはint型を必要とする32ビットの。お知らせ"1000 <<5連続"。
たぶんPICCのint型を持って小さい。

 
echo47、

おかげで、sizeof演算()を使用一般的な詳細とされる。

-ジョナサン

 
xxtigerxxアドバイスを開始が良いへの道。あなたができることならコードをsuboptimiseあなたのさらなる:
-除数の値が知られている範囲内の制限
-算術そのデータをすべてのスケールとすることができますあなたがしようとする2場合の消費電力分を変更する値の代わりになる操作を論理的に使用するチャンスをあなたに
-見てルーチン変換求める英数字場合、ルーチンを変換にBCD

しかし、"ソ¥ースコードとIdeasaロクがある本"アルゴリズムのためにプログラマ。私が対象と思うの最適化は、このような最高の本に1つです。検索Googleは、著者に感謝すべきご利用は無料になる。

 

Welcome to EDABoard.com

Sponsor

Back
Top