Convert hex str to decimal value in delphi

decimal, delphi, delphi-6, hex, valueconverter

Solution

I had to use a Delphi library named "DFF Library" because I work on Delphi6 and the type `Uint64` does not exist in this version. Main page

Here's my code to transform a string of hexadecimal value to a string of decimal value:

You need to add `UBigIntsV3` to your uses in your unit.

function StrHexaToUInt64Str(const stringHexadecimal: String): string;
var
  unBigInteger:TInteger;
begin
  unBigInteger:=TInteger.Create;
  try
    // stringHexadecimal parameter is passed without the '$' symbol
    // ex: stringHexadecimal:='FFAA0256' and not '$FFAA0256'
    unBigInteger.AssignHex(stringHexadecimal);
    //the boolean value determine if we want to add the thousand separator or not.
    Result:=unBigInteger.converttoDecimalString(false);
  finally
    unBigInteger.free;
  end;
end;

Problem

I've got a problem to convert a string representation of an hex value in integer value with Delphi. for example: $FC75B6A9D025CB16 give me 802829546 when i use the function: ``` Abs(StrToInt64('$FC75B6A9D025CB16')) ``` but if i use the calc program from Windows, the result is: 18191647110290852630 So my question is: who's right? me, or the calc? Does anybody already have this kind of problem?

Original source

Related problems