Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2009, 03:47
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Valores int a binarios en char

Para lograr ubicar e interpretar correctamente los numeros tenes que usar los operadores bitwise: shift (<<, >>), and (&) y or (|).

Teniendo nuestro array de char:
char v[5];
v[0] = 3 | (1 << 4); //<< 4 mueve 4 bits a la izquierda, es el equivalente a * 16

entonces nos queda que v[0] = 3 | 16 =19 = 10011.
idem para v[1] = 5 | 32 = 37 = 100101.
y etc.

Para interpretarlo la parte baja del byte se obtiene usando una mascara que invalida la alta:
v[0] & 0x0F
19 & 0x0F = 10011 & 1111 = 11 = 3.

Para la parte alta usamos la operacion inversa y ponemos los bits altos encima de los bajos empujandolos a la derecha:
v[0] >> 4 //mueve 4 bits a la derecha, es el equivalente a / 16
19 / 16 = 1.

PD. Tal como lo pediste pones 3, 1; 5, 2; etc.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO