Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Function für Vorzeichen?

  Alt 8. Sep 2006, 19:13
Hallo,

hier ist noch eine Assembler-Version:

Delphi-Quellcode:
function Sign2 (aValue: Integer): Integer;
asm
  sar eax,31
  or eax,1
end;
Die folgenden PASCAL-Versionen haben den Vorteil, daß man sie im BDS mit der INLINE-Direktive versehen kann. In zeitkritischen Routinen kann man damit einen zusätzlichen Geschwindigkeitsvorteil erzielen:

Delphi-Quellcode:
function SignInt (aValue: Integer): Integer; {nur für BDS: inline;}
const
  cSign: array [Boolean] of Integer = (-1, +1);
begin
  Result := cSign[aValue >= 0];
end;

function SignFloat (aValue: Double): Integer; {nur für BDS: inline;}
const
  cSign: array [Boolean] of Integer = (-1, +1);
begin
  Result := cSign[aValue >= 0];
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat