のアセンブリ言語演算を

I

illucius

Guest
ただ不思議...算術演算を行う係数コードをすることができます実行誰もが少し速いご存知ですか?

 
どのような算術か係数とは、意味ですか?
|をくださいmの意味あなたはメートル= |?

 
申¥し訳ありませんが、私は数係数をの意味を実行します。で、3%5 = 3のようにCが言語のアセンブリ。

 
よりも大きい分子の左にあるものです基本的には分母になるまで分子から分母を減算します。その結果分子は係数です。ショートカットは、分子よりも大きいにシフト分母を行いますする場所のシフトは、次の。このことから分子と減算します。3シフト時間は8に、2 ^ 3分子から減算と同じ分母を。あなたは分子残り続けること、これがよりシフト大きい分母が減算されるまで。(まだ覚えているゼロシフトは、2 ^ 0 = 1)に加え2 ^ shift1 2 ^ shift2 ...2 ^ shiftNは答えがしています。残りの分子は剰余されますがあります。アセンブリlanquageレベル試して、それを高い、最初にそれをクリックします。ところで、整数の除算、多くのマイクロがあるレジスタ別の係数のレジスタとなる1つの結果が得られるので、それはあなただ行わ既に。

とnを覚えて^のことでバイナリ2 <nは1と同じ<

追加:ここVB.NETのサンプルです

コード:

モジュールをModule1

公共構¥造ModDivide

として点心結果整数

整数として薄暗い率

エンド構¥造国民は()ModDivideとして整数としてByVal numは、整数としてByVal洞穴をDoMod関数

薄暗いシフト、整数としてdentmp

整数として薄暗いANSをANSを= 0がnumの> =デン

dentmp =デン

シフト= 0<(dentmp <<シフト)が= numが

シフト= 1シフト

エンド間シフト=シフト - 1

numは= numは - (dentmp <<(シフト))

ANSは= ANSを (1 <<シフト)

エンド間DoMod.result = ANSを

DoMod.modulus = numが

エンド機能¥

エンドモジュールそれから私は、フォーム(Form1)をテキストボックス(TB1の)が出力されます答えをと作ったときに

テキストボックスがクリックされた:パブリッククラスをForm1プライベートサブtb1_Click(オブジェクト、System.EventArgs ByVal電子として)を処理tb1.ClickとしてByVal送信

点心は、xとしてModDivide

はx = DoMod(3421、65)

tb1.Text = x.result.ToString "は"x.modulus.ToString検索する

End Subの

エンドクラス
 

Welcome to EDABoard.com

Sponsor

Back
Top