#include <stdio.h>
int main(void) {
int posicao = 6; //posicao do bit (equivale ao 64)
int valor = 0;
valor |= 1 << posicao; //ligando o bit
printf("Ligou o bit: %d\n", valor
); int resultado = (valor >> posicao) & 1; //verificando valor do bit
printf("O bit está: %d\n", resultado
); valor &= ~(1 << posicao); //limpando o bit
printf("Desligou o bit: %d\n", valor
); resultado = (valor >> posicao) & 1; //verificando valor do bit
printf("O bit está: %d\n", resultado
); valor ^= 1 << posicao; //invertendo um bit
printf("Inverteu o bit: %d\n", valor
); valor |= 16; //ligando o bit pelo seu valor
printf("Ligou o 4. bit: %d\n", valor
); }
//https://pt.stackoverflow.com/q/175345/101
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CglpbnQgcG9zaWNhbyA9IDY7IC8vcG9zaWNhbyBkbyBiaXQgKGVxdWl2YWxlIGFvIDY0KQoJaW50IHZhbG9yID0gMDsKCXZhbG9yIHw9IDEgPDwgcG9zaWNhbzsgLy9saWdhbmRvIG8gYml0CglwcmludGYoIkxpZ291IG8gYml0OiAlZFxuIiwgdmFsb3IpOwoJaW50IHJlc3VsdGFkbyA9ICh2YWxvciA+PiBwb3NpY2FvKSAmIDE7IC8vdmVyaWZpY2FuZG8gdmFsb3IgZG8gYml0CglwcmludGYoIk8gYml0IGVzdMOhOiAlZFxuIiwgcmVzdWx0YWRvKTsKCXZhbG9yICY9IH4oMSA8PCBwb3NpY2FvKTsgLy9saW1wYW5kbyBvIGJpdAoJcHJpbnRmKCJEZXNsaWdvdSBvIGJpdDogJWRcbiIsIHZhbG9yKTsKCXJlc3VsdGFkbyA9ICh2YWxvciA+PiBwb3NpY2FvKSAmIDE7IC8vdmVyaWZpY2FuZG8gdmFsb3IgZG8gYml0CglwcmludGYoIk8gYml0IGVzdMOhOiAlZFxuIiwgcmVzdWx0YWRvKTsKCXZhbG9yIF49IDEgPDwgcG9zaWNhbzsgLy9pbnZlcnRlbmRvIHVtIGJpdAoJcHJpbnRmKCJJbnZlcnRldSBvIGJpdDogJWRcbiIsIHZhbG9yKTsKCXZhbG9yIHw9IDE2OyAvL2xpZ2FuZG8gbyBiaXQgcGVsbyBzZXUgdmFsb3IKCXByaW50ZigiTGlnb3UgbyA0LiBiaXQ6ICVkXG4iLCB2YWxvcik7Cn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzE3NTM0NS8xMDE=