Nos exemplos acima setamos e resetamos bits em suas posições. Isso pode dificultar, 
                de alguma forma, a comparação de valores com o comando if e switch.
            
            Tabela:
            
valor == 0x30 //sem deslocamento
valor == 3 //com deslocamento
            
                Usando os operadores (>>) e (<<) podemos recuperar esses bits específicos como mostrado 
                no exemplo abaixo:
            
            Sintaxe:
            
nome_variavel operador qtd_bits
            Exemplo 6:
            
#include <stdio.h>
int main()
{
    unsigned char variavel = 0xff;
    
    unsigned char resultado = variavel & 0b00011000; //0x18
    resultado = resultado >> 3;    //0b00000011
    
    printf("%x",resultado); //3
    return 0;
}
            Saída
            
3
            
                Usando os operadores (&), (<<) e (>>) podemos criar uma macro para testar apenas 
                1 bit específico.
            
            Sintaxe:
            
#define TESTAR_BIT(valor, posicao) (((valor) & (1 << (posicao))) >> posicao)
            Exemplo 7:
            
#include <stdio.h>
#define TESTAR_BIT(valor, posicao) (((valor) & (1 << (posicao))) >> posicao)
int main()
{
    unsigned char variavel = 0xff;
    
    unsigned char flag = TESTAR_BIT(variavel,4); //00010000
    
    printf("%x",flag); //1
    return 0;
}
            Saída
            
1