Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Almacenar en un long dos int

Estas en el tema de Almacenar en un long dos int en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/05/2009, 10:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 0
Almacenar en un long dos int

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í:

coordenadas= 0xFFFF0000L & x;
coordenadas= coordenadas & (y<<32);


Gracias de antemano :))
  #2 (permalink)  
Antiguo 08/05/2009, 13:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Almacenar en un long dos int

En una PC (32/64 bits) int y long son 4 bytes, short son 2 bytes.

coordenadas = (y << 16) | x;

Despues para sacar x e y de coordenadas:
x = coordenadas & 0x0000FFFF;
y = coordenadas >> 16;
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:47.