16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE^2:DelphiによるBit操作例"
この発言は #00104 ゴンパパ さんのRE:DelphiによるBit操作例 に対するコメントです
ゴンパパ さん、どもです 瑠瓏です。
>ビット反転なら、こんな感じのもあります。ただ、8bitなら、256個の
>配列にテーブル書いたほうが速いような気もしますが(^^ゞ
>//8bitのビット反転 アセンブラ版(ちょっとだけ高速版)
function BitRev (k:byte ) :byte ; register;assembler;
asm
rol al,1 ; rcr al,1 ; rol al,1 ; rcr al,1
rol al,1 ; rcr al,1 ; rol al,1 ; rcr al,1
rol al,1 ; rcr al,1 ; rol al,1 ; rcr al,1
rol al,1 ; rcr al,1 ; rol al,1 ; rcr al,1
mov al,ah
end;
100万回ループでの実測値(P5/166MHZ:PC9821Xa)10回平均値(概略)
一番速いのは テーブル 400ms
上記の並列 1200ms
ゴンパパさんのloopの代わりに dec ecx; jnz lp
1600ms
ゴンパパさんの方法 2000ms
断然テーブルが速いですね。
神無月。降霜、木枯し舞ふ FDELPHI ☆ 瑠瓏 <KHB05271@niftyserve.or.jp>
FJBUILDR Tue,10/28/97 12:16
Original document by 瑠瓏 氏 ID:(KHB05271)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|