convertir hexadecimal muy grande a decimal

109 views
Skip to first unread message

src

unread,
Apr 21, 2014, 1:42:26 PM4/21/14
to publice...@googlegroups.com
Hola a todos, necesito convertir un hexadecimal muy grande a decimal. La función EVALUATE hace la conversión pero el resultado me lo da en notación científica.
¿Como puedo obtener dicho número en decimal?
Un ejemplo: Hexadecimal:  3230303031303030303030313030303035383637    Decimal: 286524172099382162235533054511188021807429465655

El decimal resultante no lo necesito para operaciones matemáticas.

Gracias de antemano.

Víctor Hugo Espínola Domínguez

unread,
Apr 21, 2014, 7:56:21 PM4/21/14
to publice...@googlegroups.com
Hola src

Busca y descarga "mztoper"  en este foro, es una clase hecha por Fidel Charny para efecturar operaciones con números de más de 16 dígitos.

Prueba el siguiente código:

Local lnLen, i, j As Integer, lcHex, lcDec As String, loSumaMult, loResult As Object

Local Array laHex[1], la16i[1], laDec[1]

loSumaMult = Newobject("Operar","mztOper")    && Clase de Fidel Charny
lcDec = "0"
lcHex = "3230303031303030303030313030303035383637"
lnLen = Len(lcHex)

Dimension laHex[lnLen]
Dimension la16i[lnLen]
Dimension laDec[lnLen]

For i = lnLen To 1 Step -1
    laHex[lnLen - i + 1] = Transform(Int(Val("0x" + Substr(lcHex, i, 1))))
    la16i[i] = "1"
    For j = 2 To i
        loResult = loSumaMult.OperText(la16i[i], "16", "*", 0)
        la16i[i] = loResult.gaResult[1]
    Endfor
Endfor
For i = 1 To lnLen
    loResult = loSumaMult.OperText(la16i[i], laHex[i], "*", 0)
    laDec[i] = loResult.gaResult[1]
    loResult = loSumaMult.OperText(lcDec, laDec[i], "+", 0)
    lcDec    = loResult.gaResult[1]
Endfor

Release loResult, loSumaMult
loResult   = Null
loSumaMult = Null

? lcDec

Saludos,
Víctor.
Lambaré - Paraguay.

Fidel Charny

unread,
Apr 21, 2014, 8:19:45 PM4/21/14
to publice...@googlegroups.com
Por si se necesita adjunto mztoper.vcx. 
Vale la aclaración: "con la inestimable colaboración de Fernando D. Bozzo" a quién le avisé que le robaba algunas ideas. Y no se enojó!.

Victor:
Hoy pensé que se podía utilizar esta clase, pero no me puse a pensar. 
Saludos
Fidel.
mztoper.ZIP

src

unread,
Apr 22, 2014, 10:59:27 AM4/22/14
to publice...@googlegroups.com
Muchas gracias Fidel Charny y Victor Hugo por tomarse el tiempo para ayudarme, de inmediato inicio las pruebas con lo que me mandaron y en cuanto tenga resultados les aviso.
Gracias nuevamente.

src

unread,
Apr 22, 2014, 11:14:12 AM4/22/14
to publice...@googlegroups.com
Mil y un millón más de gracias. Funcionó perfectamente.
Reply all
Reply to author
Forward
0 new messages