SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: mizzard en Sábado 16 de Abril de 2011, 20:26

Título: Duda convertir de int a char array
Publicado por: mizzard en Sábado 16 de Abril de 2011, 20:26
Hola a todos, os pongo en situación:

Resulta que quiero pasar un int a un array de char para enviar por una trama, me explico:

Si el int <256

michar[0]=0x00;
michar[1]= (char)miint;

ahora viene el problema, cuando el int>=256, ya que me gustaria hacer lo siguiente:

si por ejemplo tengo que el int es 256, sabemos que en hexadecimal es 0x0100, por lo que yo quiero poner:

michar[0]=0x01; parte alta
michar[1]=0x00; parte baja

Veo que es algo sencillo pero no me aclaro, me podeis echar una ayudita?

Muchas gracias!
Título: Re: Duda convertir de int a char array
Publicado por: mizzard en Domingo 17 de Abril de 2011, 11:23
Jeje, ya lo he resuelto, expongo mis conclusiones:

PARA PASAR DE unsigned short int a unsigned char[2]
-------------------------------------------------

if (miint< 256){
michar[i++] = 0;
michar[i++] = miint;
}
else {
michar[i++] = miint >> 8;
michar[i++] = miint & 0xFF;
}

PARA PASAR DE unsigned char[2] unsigned a short int
-------------------------------------------------

miint |= michar[0] & 0xFF;
miint <<= 8;
miint |= michar[1] & 0xFF;