Duda convertir de int a char array
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! |
Hola mizzard.
Te pongo un ejemplo: Código:
unsigned char v[100]; Un saludo. |
Muchisimas gracias por la respuesta... ahora me surge otra duda... como podria hacer el caso contrario? Es decir, basándome en el ejemplo:
pasar de unsigned char michar[2] a unsigned short int? Hay que tener en cuenta donde se almacena la parte alta y la parte baja Ejemplo: michar[0]=0x01 // parte alta michar[1]=0x2c // parte baja Resultado: miint=300 |
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; hay que tener en cuenta que el num máximo será: 65535 Muchas gracias a ecfisa por su colaboración Un saludo! |
La franja horaria es GMT +2. Ahora son las 17:17:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi