Programación General => C/C++ => Mensaje iniciado por: aisbel en Viernes 8 de Mayo de 2009, 18:11
Título: Almacenar en un long dos int
Publicado por: aisbel en Viernes 8 de Mayo de 2009, 18:11
Hola a todos,
tengo una duda que no consigo resolver, a ver si me pueden ayudar:
Tengo las siguientes variables:
int x; int y; long coordenadas;
Me gustaría, ya que los enteros ocupan 2B y los long 4B, almacenar el primer entero (x) en los primeros 2B del long, y el segundo entero (y) en los 2B de más peso del long.
He probado varias formas, lo que intento hacer es algo así:
Al menos en mi equipo, ambos tienen el mismo tamaño (4 bytes).
De cualquier forma, sería solo un dato aclaratorio. Si x y y son de 4 bytes pero tú te asegurarás que no tendrás valores mayores a los que se pueden almacenar en 2 bytes:
Código: C
int x =1;
int y =2;
long coord =0;
coord =(( x &0x0000ffff)<<16)|( y &0x0000ffff);
------------------- Edición: Jeje, Eternal me ganó en enviar la respuesta :P.