La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8820 - CONVERTIR UNA CADENA DE HEXADECIMAL A DECIMAL
Autor:  Miguel A. Ramirez
HOLA

Normalmente he usado el componente MSCOMM1, para comunicarme con el puerto serial, pero ahora no logro interpretar los datos que me envia un programa en lengueje C, estos estan en hexadecimal, (el engueje C corre en DOS)
El componente MSCOMM1, solo me permite leer y escribir en modo BINARIO y/o CARACTER, pero no logro convertir los datos que llegan al buffer de entrada del puerto serial, para visualizarlos en alguna caja de texto

Por favor ayundenme, a encontrar alguna instrucción (en realidad ya he revisado las instrucciones de la ayuda en VB) o algun metodo mediante dll en C++ ó alguna direccion en la red donde pueda bajar algun dll, que me permita leer el COMM1, con facilidad, GRACIAS por su tiempo y por su ayuda

Sin otro particular reitero un cordial saludo

  Respuesta:  Dante Salazar
Hola Miguel

No se si te entendí bien, parece ser que sí puedes recibir los datos, pero no los logras convertir.

Si llega 8F2A, por ejemplo, y deseas que se muestre directamente la conversión a decimal de cada caracter, sólo tendrías que hacer
for i = 1 to len("8F2A")
x=mid("8F2A",i,1)
text1=text1 & val("&H" & x)
next

Te aparecerá en el text1 815210 (8 del 8, 15 de la F, 2 del 2 y 10 de la A)

Si el formato de los datos que llegan es de 2 digitos hexadecimales, por ejemplo 80,2A etc. y necesitas convertir a decimal el 80 (=128) y el 2A (=42) entonces tienes que utilizar un algoritmo un poco más elaborado. Si este es el caso, escribeme a mi correo que creo que tengo algo por alli

Saludos desde Panamá