C/Visual C - bits

 
Vista:

bits

Publicado por esteban (6 intervenciones) el 12/11/2004 04:33:12
alguien me podria explicar estas lineas de codigo:

c = dWORD >> (numero_bits-8);
dWORD <<= Aux2->numero_bits;
dWORD |= Aux2->bits;
c = dWORD << (numero_bits-8);

fread(&a, sizeof(char), 1, arch_entrada);
bits |= a;
bits <<= 8;
fread(&a, sizeof(char), 1, arch_entrada);
bits |= a;
bits <<= 8;
fread(&a, sizeof(char), 1, arch_entrada);
bits |= a;
bits <<= 8;
fread(&a, sizeof(char), 1, arch_entrada);
bits |= a;
j = 0;

if(bits & 0x80000000)

bits <<= 1;

bits |= a
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:bits

Publicado por chuidiang (677 intervenciones) el 12/11/2004 08:53:51
Hola:

La operación << desplaza los bits hacia la izquierda. La >> a la derecha. La operacion | es un OR.

No se muy bien que hacen las primeras lineas (faltan algunas variables y saber qué valores tienen), pero la parte de fread parece que va leyendo bytes de un fichero y los va colocando en un entero

fread (...) <--- Lee en a un byte (por ejemplo, 01010101)
bits |=a <--- Guarda en los 8 bits menos significativos de bits el byte leido. (es decir bits = 00...00 01010101 donde 00..00 es 24 ceros)
bits<<=8 <---- Desplaza los bits de bits 8 posiciones a la izquierda, es decir, coloca el byte a recien copiado en la segunda posicion. (es decir,
bits = 00..00 01010101 00000000 donde 00.00 es ahora 16 ceros)

No sé si te sirve de ayuda...

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar