<div>Creo que no hay problema, si es lo que entendi..</div><div><br></div><div>Supone que tenes que pasarle el valor guardado en </div><div>int valor;</div><div>char buffer[512]; /* 512 es un poco mucho creo */</div><div><br>

</div><div>int i = 0;</div><div>while(valor){<div style="margin-left: 40px">        buffer[i] = (char) (valor & 0xFF);</div><div style="margin-left: 40px">        valor >>= 8;</div><div style="margin-left: 40px">

        i++;</div><div>    }</div><div><br></div><div>este codigo te descompone valor para que te quede de esta forma </div><div>unsigned char buffer[2]={0x12,0x34}</div><div><br></div><div>supongo que despues le pasaras buffer a una funcion que te lo pasara a una cadena representando en hexadecimal los datos que te interesan.<br>

</div><div><br></div><div>Tambien podrias hacer una funciona que directamente a partir de un int o un long te de la cadena lista:</div><div>Esta funcion la tenia hecha, y deja en buffer, una cadena con la representacion de a en la base b, en tu caso tendrias que usar b=16</div>

<div><br></div><div>char buffer[512];</div><div>int val2b(unsigned long a,int b)<div>{</div><div style="margin-left: 40px">    int j,i = -1;</div><div style="margin-left: 40px">    char r,swp;</div><div style="margin-left: 40px">

    <br></div><div style="margin-left: 40px">    while(a){</div><div style="margin-left: 80px">        i++;</div><div style="margin-left: 80px">        r = a % b;</div><div style="margin-left: 80px">        if(r>=0 && r<=9) buffer[i] = '0' + r;</div>

<div style="margin-left: 80px">        else if(r>9) buffer[i] = 'A' - 10 + r;</div><div style="margin-left: 80px">        a /= b;</div><div style="margin-left: 40px">}</div><div style="margin-left: 40px">    buffer[++i] = 0;</div>

<div style="margin-left: 40px">    return i;</div><div>}</div><div><br></div><div><br></div><div>Saludos<br></div></div></div><br><div class="gmail_quote">El 24 de noviembre de 2009 11:09, Susana Sacie <span dir="ltr"><<a href="mailto:susanitis@gmail.com">susanitis@gmail.com</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<p class="MsoNormal">Estoy realizado un proyecto con un lector usb para leer
datos de un pasaporte en visual Studio 2008. En el punto donde estoy tengo que
transmitir y recibir<span>  </span>del lector una
serie de bytes en hexadecimal y analizar algunos bits. El caso es que con las librerias que proporcina
el lector transmito y recibo<span>  </span>los datos
en un array de caracteres . <span> </span></p>

<p class="MsoNormal">Si yo  espero recibir el valor hexadecimal '0008B1' lo que recibo es:</p><p class="MsoNormal">si tengo seleccionado  protocolo ASCII:  la cadena "0008B1" //es con el que trabajo<br>


</p><p class="MsoNormal">si tengo seleccionado protocolo binario: la cadena "00 08 B1"<br></p>

<p class="MsoNormal"> <br></p>

<p class="MsoNormal">la variable que uso de buffer es :  <br></p><p class="MsoNormal">char buffer[512];<span> 
</span>//donde<span>  </span><span>  </span>cada posición del array almacena 1 carácter de
los anteriores obviamente.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Si yo quiero transmitirle el valor ‘3412’ se lo transmito
como una cadena “3412”.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">El problema viene porque conseguí por Internet código que me
está ayudando a programar, y cuando tiene que tx algo lo declara de la
siguiente forma:</p>

<p class="MsoNormal">-si queremos tx al pasaporte el valor hexadecimal ‘3412’ lo
define de la siguiente forma:</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">unsigned char buffer[2]={0x12,0x34};// donde vemos que cada
posición almacena un byte hexadecimal   y ordenados de menos significativo a mas
significativo, byte a byte.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">El problema que tengo es que tengo mucho codigo que trabaja
con este formato. No entiendo porque todos los valores a tx al lector son
declarados de esta forma si el lector no puede recibir los <span> </span>datos en ese formato. </p>

<p class="MsoNormal">No se que hacer porque tengo algoritmos que  trabajan
sobre un valor recibido previamente del lector, pero yo recibo los datos en
formato “3412”
y el algoritmo espera {0x12,0x34}.</p><p class="MsoNormal">muchas gracias por vuestra valiosa ayuda. Si no fuera por ustedes...<br></p>

<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br>