Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#18

AW: HexToDec optimieren

  Alt 23. Jun 2014, 09:55
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.
  Mit Zitat antworten Zitat