Added TBigInt.ToString for debugging

This commit is contained in:
Stefan Müller 2024-05-20 00:59:40 +02:00
parent 9c951073d9
commit 2ca960f19c
1 changed files with 17 additions and 0 deletions

View File

@ -78,6 +78,8 @@ type
class property Zero: TBigInt read GetZero; class property Zero: TBigInt read GetZero;
function CompareTo(constref AOther: TBigInt): Integer; function CompareTo(constref AOther: TBigInt): Integer;
function TryToInt64(out AOutput: Int64): Boolean; function TryToInt64(out AOutput: Int64): Boolean;
// TODO: ToString is currently for debug output only.
function ToString: string;
class function FromInt64(const AValue: Int64): TBigInt; static; class function FromInt64(const AValue: Int64): TBigInt; static;
class function FromHexadecimalString(const AValue: string): TBigInt; static; class function FromHexadecimalString(const AValue: string): TBigInt; static;
class function FromBinaryString(const AValue: string): TBigInt; static; class function FromBinaryString(const AValue: string): TBigInt; static;
@ -498,6 +500,21 @@ begin
end; end;
end; end;
function TBigInt.ToString: string;
var
i: Integer;
begin
if FIsNegative then
Result := '-'
else
Result := '';
for i := 0 to Length(FDigits) - 2 do
Result := Result + '(' + IntToStr(FDigits[i]) + ' + 2^32 * ';
Result := Result + IntToStr(FDigits[Length(FDigits) - 1]);
for i := 0 to Length(FDigits) - 2 do
Result := Result + ')';
end;
class function TBigInt.FromInt64(const AValue: Int64): TBigInt; class function TBigInt.FromInt64(const AValue: Int64): TBigInt;
var var
absVal: Int64; absVal: Int64;