anchor.diff:  begin
     Result := ToString(FBase);
   end;
  +
   function BigInteger.ToString(Base: Integer): string;
   var
     WritePtr: PChar;
  
positive.code: 
      Sum := UInt64(Left[3]) + Right[3] + (Sum shr 32);
      Result[3] := TLimb(Sum);
  
      Inc(Left, CUnrollIncrement);
      Inc(Right, CUnrollIncrement);
  
negative.code:   Bytes := (Bytes + 7) shr 3;
    if FSize > 0 then
    begin
      Mag := FData;
      ExtraByte := $00;
    end
    else
    begin
      SetLength(Mag, Size);
      InternalNegate(PLimb(FData), PLimb(Mag), Size);
      ExtraByte := $FF;
    end;
    SetLength(Result, Bytes + Byte(Bits = 0));
    Move(Mag[0], Result[0], Bytes);
    if Bits = 0 then
      Result[Bytes] := ExtraByte;
  end;
  