Einzelnen Beitrag anzeigen

Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Function für Vorzeichen?

  Alt 8. Sep 2006, 19:34
Zitat von 3_of_8:
Also gut, jetzt noch einmal. Sign steht in der Unit Math. Die einbinden. Das dürfte auch bei Delphi 4 oder was du hast drinsein.
Math ist eingebunden, er kennt Sign trotzdem nicht.
Zitat von 3_of_8:
abs(value)/value ist ineffizient, wenn dann schon abs(value) div value
Seit wann läuft div auch mit Reals?
Zitat von 3_of_8:
, was bei einer 0 versagt, weil man nunmal nicht durch 0 teilen kann.
wie gesagt, dazu wird es nie kommen.
Zitat von 3_of_8:
Ich hätt das jetzt so gelöst:

Delphi-Quellcode:
function Sign(const AValue: Integer): Integer;
asm
cmp eax, 0
ja @positive
cdq
mov eax, edx
ret
@positive:
mov eax, 1
end;
Der Code ist sicherlich nicht schlecht, aber (das kannst du nicht wissen) ich kann kein Assembler und ich möchte keinen Code schreiben, den ich nicht verstehe.

Ich hab mir nach euren Tipps jetzt doch ne Function gebastelt:
Delphi-Quellcode:
function Sign(Value: Real): Integer;
begin
  If Value < 0 then
    result := -1
  else
    result := 1;
end;
  Mit Zitat antworten Zitat