Das er FF als -1 erkennt brauchste die Anzahl der möglichen Hexadezimalstellen.
Delphi-Quellcode:
function pow(x,n:Integer):Integer;
begin
if n>1 then
result:=x*pow(x,n-1)
else result:=x;
end;
var x :Integer;
s :String;
begin
s:='FF';
x:=HexToInt(s);
if x>pow(16,Length(s)-1) then
x:=x-pow(16,Length(s));
end;
//x ist der Integer-Wert
Nachteil: 15 ist nicht F sonder 0F