[C con Clase] Leer ciertos bits de una variable WORD

Zaka Elab shanatorio en gmail.com
Vie Oct 3 17:54:59 CEST 2008


Según tu explicación tenemos esto:

     8      4    4
--------- ---- ----
0000 0001 0010 0011

Supongo que el problema está en que no puedes acceder a cada
elemento binario y tienes que hacerlo operando. Yo lo solucionaría
de la siguiente manera.

(La separación en grupos de cuatro bits es por claridad, el número es
de 16 bits)

1- XXX - (0000 0001 0000 0000)= XXX - 2^8 = XXX - 256:

     0000 0001 0010 0011
    -0000 0001 0000 0000
    --------------------
     0000 0000 0010 0011 (La llamaremos XXX2)
2- Hay una propiedad de los números binarios que es la siguiente:
Si desplazamos los bits a la derecha introduciendo 0 por la izquierda,
estamos dividiendo por 2, tantas veces como desplazamientos hayamos hecho.

XXX2/4 = XXX2 desplazado 4 veces a la derecha:

        XXX2                     XXX2/4
-------------------      -------------------
0000 0000 0010 0011 ---> 0000 0000 0000 0010 (La llamaremos XXX3)

Ahora ya tenemos que XXX3 = 2.


Espero que sea esta la respuesta que buscabas

Zaka.




Más información sobre la lista de distribución Cconclase