[C con Clase] ayuda
Programante
programante en gmail.com
Dom Abr 6 00:34:57 CEST 2008
Carol Carito escribió:
> Hola:.
> Alguien me puede ayudar a descifrar lo siguiente:
>
> #include <stdlib.h>
> #include <stdio.h>
> #include <string.h>
>
> int main(int argc, char **argv) {
>
> char Buffer[128] = {
> 0x00, 0x01, 0x02, 0x03, 0x04,
> 0xAA,
> 0}
>
> int i;
>
> for(i=0;i<128;i++) printf("%d ",Buffer[i]);
> }
>
> 0 1 2 3 4 -84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> POrque no me muestra el 170 (0xAA)
>
Sí te lo muestra. -84 es 0xAA. Lo que pasa es que como es un signed
char, con el bit alto a 1, te lo trata como negativo. Imprímelo como
printf("%d ", (unsigned char)Buffer[i]); o (puesto que se trata de
números sin signo) printf("%u ", (unsigned char)Buffer[i]);
Más información sobre la lista de distribución Cconclase