8 de febrero de 2002

Pasar de hexadecimal a decimal

Una forma fácil de pasar números del sistema hexadecimal al sistema decimal y viceversa.

A partir de VFP 6 podemos pasar un número hexadecimal a decimal de una forma directa. Por ejemplo queremos convertir el número hexadecimal "FFFF" al sistema decimal:

? 0xFFFF

De la misma manera podemos pasar un número decimal al sistema hexadecimal utilizando la función TRANSFORM()

lnDec = 123
? TRANSFORM(lnDec,"@0")

A partir de esto, creamos las correspondientes funciones definidas por el usuario, que nos permiten la conversión de números de un sistema a otro:
*--------------------------------------------
FUNCTION Hex2Dec(tcHex)
  RETURN EVALUATE("0x"+ALLTRIM(tcHex))
ENDFUNC
*--------------------------------------------
FUNCTION Dec2Hex(tnDec)
  RETURN SUBSTR(TRANSFORM(tnDec,"@0"),3)
ENDFUNC
*--------------------------------------------

Luis María Guayán

1 comentario :

  1. Estimado Sr. Luis

    Tengo una cadena numérica de una longitud de 52 dígitos.. al aplicar un algoritmo base 16 para convertirlo a hexadecimal tropecé con el problema de la longitud numérica... podría ayudarme con esto?

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.