Hi,
Ich habe folgende 2 Funktionen:
Delphi-Quellcode:
function HexToInt1(const S: string): Cardinal;
begin
Result := StrToInt('$' + S);
end;
function HexToInt2(const S: string): Cardinal;
var
I: Byte;
C: Char;
begin
Result := 0;
for I := 1 to Length(S) do
begin
Result := Result * 16;
C := S[I];
case C of
'0'..'9': Inc(Result, Ord(C) - Ord('0'));
'a'..'f': Inc(Result, Ord(C) - Ord('a') + 10);
'A'..'F': Inc(Result, Ord(C) - Ord('A') + 10);
//else raise EConvertError.Create('No Hex-Number');
end;
end;
end;
Die 2. Version ist die schnellere, mir allerdings nicht schnell genug.
Hat jemand eine optimierte (assembler) Version von HexToInt oder eine Idee zur Optimierung?
Danke!