Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/02/2010, 04:23
Megamouse
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Leer número entero en binario

Como estas leyendo esos datos del fichero? dependiendo de como lo hagas la manera de transformar ese dato cambia.

Lo que siempre es igual es si tienes 4 bytes:

a[0] = 0000 0000 -> 0 0 -> 0
a[1] = 0000 0010 -> 0 2 -> 2
a[2] = 0110 0110 -> 6 6 -> 102
a[3] = 1011 1001 -> B 9 -> 185

el numero resultante es 00 02 66 B9 (lo pongo en hex porque es mas comodo) o lo que es lo mismo:

(a[0]*256*256*256)+(a[1]*256*256)+(a[2]*256)+a[3]

Código C:
Ver original
  1. int main (void)
  2. {
  3.   unsigned int tam;
  4.   char a[4];
  5.   int i;
  6.  
  7.   a[0]=0; a[1]=2; a[2]=102; a[3]=185;
  8.  
  9.   tam= 0;
  10.   for (i=0; i<4; i++)
  11.     tam= (tam << 8) + a[i];
  12.  
  13.   printf ("Tam file: [%d]\n", tam);
  14.   getch();
  15.   return 0;
  16. }

Aunque se podria leer directamente del fichero binario:

Código C:
Ver original
  1. read (fd, &tam, 4);

tam debe poder almacenar 4 bytes (habitualmente un int)