Pablo, Es quizas una estupidez lo que te voy a comentar, pero para llegar de 3B a 59 la conversion debe ser si o si hexadecimal. Decimal no podria ser, porque B es mayor a 10, por lo que no podria ser resuelta, matematicamente hablando. Ahora (3x16) + 11 = 59 Lo otro que podes testear es el valor del string, desarmarlo, y calcular su valor dependiendo de su posicion y largo de la cadena Buen fin de semana
-----Original Message----- From: "PabloC" <[EMAIL PROTECTED]> To: "vbnet List Member" <vbnet@mug.org.ar> Date: Fri, 2 May 2008 14:40:07 -0300 Subject: [vbnet] String a Byte Tal cual lo comentaba Fernando NO funciono :-( El tema es asi a ver si me explico mejor Tengo una rutina en VB,NET que calcula un CRC16 muy especial para una cadena de valores Hexas Esta rutina recibe parametros asi Public Shared Function calculate(ByVal buffer() As Byte, ByVal offset As Integer, ByVal len As Integer, ByVal feed As Integer) As Integer Dim iCRC As Integer Dim i As Integer Dim bytT As Byte Dim bytC As Byte Dim ia As Integer iCRC = feed For i = offset To len - 1 bytC = buffer(i) bytT = (iCRC And &HFF) Xor bytC ia = uiShiftRightBy8(iCRC) iCRC = ia Xor aCRC16Table(bytT) Next calculate = iCRC End Function Como pueden ver recibe buffer() As Byte buffer por ejemplo puede ser ("04","03","00","00") y asi funciona perfecto, pero tambien puede ser ("04","01","06","00","3B","32") y en este caso salta por la excepcion del TRY al convertir "3B" en byte SI hago lo que dice fernando de convertir primero a mano en decimal, el "3B" es 59 y pasandole 59 a la rutina el CRC no me da como deberia Se entendio? Alguna idea? Gracias Saludos PabloC