Forum: Object-Pascal / Delphi-Language
Delphi
by xaromz,
19. Jan 2006
Hallo,
bei unseren Routinen (2 + 3) ist tatsächlich ein Fehler drin (die Nibbles waren vertauscht). Hier die richtige Routine:
function HexNumberToDec(AValue: Char): Cardinal;
begin
case AValue of
'0'..'9': Result := Ord(AValue) - 48;
'A'..'F': Result := Ord(AValue) - 55;
'a'..'f': Result := Ord(AValue) - 87;
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by xaromz,
19. Jan 2006
Hallo,
ich weiß nicht, ob Delphi das automatisch macht, aber man sollte lieber Shiften. Multiplikation ist immer etwas langsam:
function HexNumberToDec(AValue: Char): Cardinal;
begin
case AValue of
'0'..'9': Result := Ord(AValue) - 48;
'A'..'F': Result := Ord(AValue) - 55;
'a'..'f': Result := Ord(AValue) - 87; // <- Kleinbuchstaben vergessen
end;