Das soll funktionieren, wenn in s ein String aus Hex-Ziffern steht?
Allgemein würde ich mich zunächst auf ein Format für große Zahlen einigen (BigInt, string etc.). Für das entsprechende Format benötigt man dann nur die Addition und Multiplikation.
Der Rest ist doch trivial:
Delphi-Quellcode:
Type
IBigInteger = interface
Procedure Assign (n : Integer);
Procedure Add (n : Integer);
Procedure Multiply (n : Integer);
end;
Function HexToNumber (aHugeHex : Array Of AnsiChar) : IBigInteger;
Var
i : Integer;
Begin
result := CoBigInteger.Create;
result.Assign(0);
for i:=high(aHugeHex) downto Low(aHugeHex) do begin
result.Multiply (16);
result.Add (hexLookup[aHugeHex[i]]);
end;
return result;
end;
Wenn ich es nicht komplett verrissen habe, sollte das doch so funktionieren. Zum Testen kann man ja eine Klasse schreiben, die IBigInteger implementiert und das ganze aber für Int64 umsetzt. Wenn das klappt, passt man das für BigInt oder ein eigenes Format an.