#include <stdio.h>

/*
 * Manejo de bits como flags y mascaras
 */

main()
  {
    unsigned char bits = 0;     /* "arreglo" de 8 bits en cero */

    /* colocar el bit 0 en 1, sin modificar el resto */
    bits = bits | 1;

    /* colocar el bit 7 en 1, sin modificar el resto */
    bits = bits | (1 << 7);   /* La mascara la construyo */

    /* mostrar lo que quedo */
    printf("bits = %x\n", bits);

    /* preguntar por si el bit 7 esta en 1 */
    if(bits&(1<<7)) printf("OK, esta en 1\n");

    /* borrar el bit 7 */
    bits = bits & ~(1<<7);

    /* mostrar lo que quedo */
    printf("bits = %x\n", bits);

    /* preguntar por si el bit 7 esta en 1 */
    if(!(bits&(1<<7))) printf("OK, ya no esta en 1\n");
}
