Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Внизasm Найти похожие ветки
← →
Ильичев С.А. © (2005-10-20 13:21) [0]Скажите пожалуйста что быстрее.
Или как-то по другому можно?
1.
function DivTwoAndCeil(const X: Integer): Integer;
begin
Result := X div 2;
if X mod 2 > 0 then inc(Result);
end;
2.
function DivTwoAndCeil(X: Integer): Integer; assembler;
asm
MOV EAX, X
MOV ECX, EAX
SHR EAX, 1
AND ECX, 1
ADD EAX, ECX
MOV Result, EAX
end;
← →
Digitman © (2005-10-20 13:33) [1]function DivTwoAndCeil(X: Integer): Integer;
asm
AND EAX, 1
end;
← →
Digitman © (2005-10-20 13:38) [2]пардон ...
из-за имени ф-ции смысл ее затеи понятен не сразу ..
function DivTwoAndCeil(X: Integer): Integer;
asm
SHR EAX, 1 //или SAR EAX, 1 при необходимости соблюсти знак
JNC @@exit
INC EAX
@@exit:
end;
← →
Anatoly Podgoretsky © (2005-10-20 13:38) [3]Быстрее не вызывать функцию
← →
Ильичев С.А. © (2005-10-20 13:40) [4]2 Digitman © (20.10.05 13:33) [1]
не то =)
мне надо
f(0) = 0
f(1) = 1
f(2) = 1
f(3) = 2
f(4) = 2
f(5) = 3
f(6) = 3
...
← →
Digitman © (2005-10-20 13:52) [5]
> Ильичев С.А. © (20.10.05 13:40) [4]
как это "не то" ?)
убедись сам :
procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
for i := 0 to 6 do
memo1.Lines.add(inttostr(divtwoandceil(i)));
end;
← →
Ильичев С.А. © (2005-10-20 14:05) [6]2 Digitman © (20.10.05 13:52) [5]
за [2] большое спасибо
а в [4] первую срочку внимательнее
← →
Anatoly Podgoretsky © (2005-10-20 14:15) [7]Y := X DIV 2 + X MOD 2;
← →
MBo © (2005-10-20 14:35) [8]Inc(X)
X div 2
← →
evvcom © (2005-10-20 14:38) [9]asm
SHR EAX, 1
ADC EAX, 0
end;
← →
Cyberdeamon (2005-10-31 23:22) [10]
<CO DE>
← →
Cyberdeamon (2005-10-31 23:23) [11]Удалено модератором
← →
icWasya © (2005-11-01 09:31) [12]
function DivTwoAndCeil(const X: Integer): Integer;
begin
Result := (X+1) div 2;
end;
← →
Fenik © (2005-11-01 17:34) [13]function DivTwoAndCeil(const X: Integer): Integer;
begin
Result := (X+1) shr 1;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.101 c