
15/03/2009, 03:47
|
 | | | Fecha de Ingreso: mayo-2004 Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 9 meses 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 |