Converter Hexadecimal para Decimal

Delphi

08/03/2004

Tenho a seguinte função para converter:

function HexToInt(const HexStr: string): longint;
var
iNdx: integer;
cTmp: Char;
begin
Result := 0;
for iNdx := 1 to Length(HexStr) do
begin
cTmp := HexStr[iNdx];
case cTmp of
´0´..´9´: Result := 16 * Result + (Ord(cTmp) - $30);
´A´..´F´: Result := 16 * Result + (Ord(cTmp) - $37);
´a´..´f´: Result := 16 * Result + (Ord(cTmp) - $57);
else
raise EConvertError.Create(´Illegal character in hex string´);
end;
end;


Esta função funciona só para números pequenos, se passar de 10 dígitos,´não funciona mais. Alguém tem alguma função para converter?

Obrigada
Debora


Debora

Debora

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

08/03/2004

Tente assim

NumDecimal := StrToInt(´$´ + EditHex.Text);


ou senão mudar a funçaõ:
function HexToInt(const HexStr: string): longint;
para
function HexToInt(const HexStr: string): [color=green:d42635b047]Int64[/color:d42635b047];


GOSTEI 0
Debora

Debora

08/03/2004

Não deu certo :cry: :oops: :cry:

Hexadecimal
414456B5E60

Decimal Correto
4485110521440

Decimal que a função fornece (errado)
1164664416

:cry: Alguém pode me ajudar? :cry:
Obrigada

Debora


GOSTEI 0
Debora

Debora

08/03/2004

esta função faz até 7º dígito depois não daá mais certo


GOSTEI 0
POSTAR