[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