#include <stdio.h>
#include <stdlib.h>
int main( void )
{
/* Declaracao de variaveis e atribuicao de valores */
int a = 0x0FF0 ; // A expressao "0x" indica que o numero estah escrito em hexadecimal
int b = 0xFF00 ;
int c;
/* Deslocamento a esquerda */
c = a << 4 ;
printf ( "Deslocamento a esquerda: %04X << 4 = %04X\n \n " , a
, c
) ;
/* Deslocamento a direita */
c = a >> 4 ;
printf ( "Deslocamento a direita : %04X >> 4 = %04X\n \n " , a
, c
) ;
/* AND bit a bit */
c = a & b;
printf ( "AND bit a bit : %04X & %04X = %04X\n \n " , a
, b
, c
) ;
/* OR bit a bit */
c = a | b;
printf ( "OR bit a bit : %04X | %04X = %04X\n \n " , a
, b
, c
) ;
/* XOR bit a bit */
c = a ^ b;
printf ( "XOR bit a bit : %04X ^ %04X = %04X\n \n " , a
, b
, c
) ;
/* NOT bit a bit */
c = ~a;
printf ( "NOT bit a bit : ~ %08X = %08X\n \n " , a
, c
) ;
/* NOT bit a bit */
c = ~b;
printf ( "NOT bit a bit : ~ %08X = %08X\n \n " , b
, c
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpCnsKCS8qIERlY2xhcmFjYW8gZGUgdmFyaWF2ZWlzIGUgYXRyaWJ1aWNhbyBkZSB2YWxvcmVzICovCglpbnQgYSA9IDB4MEZGMDsgICAgLy8gQSBleHByZXNzYW8gIjB4IiBpbmRpY2EgcXVlIG8gbnVtZXJvIGVzdGFoIGVzY3JpdG8gZW0gaGV4YWRlY2ltYWwKCWludCBiID0gMHhGRjAwOwoJaW50IGM7CgoJLyogRGVzbG9jYW1lbnRvIGEgZXNxdWVyZGEgKi8KCWMgPSBhIDw8IDQ7ICAgIAoJcHJpbnRmKCJEZXNsb2NhbWVudG8gYSBlc3F1ZXJkYTogJTA0WCA8PCA0ICAgPSAlMDRYXG5cbiIsIGEsYyk7CglnZXRjaGFyKCk7IC8qIHBhdXNlICovCgoJLyogRGVzbG9jYW1lbnRvIGEgZGlyZWl0YSAqLwoJYyA9IGEgPj4gNDsgICAgCglwcmludGYoIkRlc2xvY2FtZW50byBhIGRpcmVpdGEgOiAlMDRYID4+IDQgICA9ICUwNFhcblxuIiwgYSxjKTsKCWdldGNoYXIoKTsgLyogcGF1c2UgKi8KCgkvKiBBTkQgYml0IGEgYml0ICovCgljID0gYSAmIGI7ICAgICAKCXByaW50ZigiQU5EIGJpdCBhIGJpdCA6ICAlMDRYICYgJTA0WCA9ICUwNFhcblxuIiwgYSxiLGMpOwoJZ2V0Y2hhcigpOyAvKiBwYXVzZSAqLwoKCS8qIE9SIGJpdCBhIGJpdCAqLwoJYyA9IGEgfCBiOyAgICAgCglwcmludGYoIk9SICBiaXQgYSBiaXQgOiAgJTA0WCB8ICUwNFggPSAlMDRYXG5cbiIsIGEsYixjKTsKCWdldGNoYXIoKTsgLyogcGF1c2UgKi8KCgkvKiBYT1IgYml0IGEgYml0ICovCgljID0gYSBeIGI7ICAgICAKCXByaW50ZigiWE9SIGJpdCBhIGJpdCA6ICAlMDRYIF4gJTA0WCA9ICUwNFhcblxuIiwgYSxiLGMpOwoJZ2V0Y2hhcigpOyAvKiBwYXVzZSAqLwoKCS8qIE5PVCBiaXQgYSBiaXQgKi8KCWMgPSB+YTsgICAgICAgIAoJcHJpbnRmKCJOT1QgYml0IGEgYml0IDogICB+ICUwOFggPSAlMDhYXG5cbiIsIGEsYyk7CglnZXRjaGFyKCk7IC8qIHBhdXNlICovCgoJLyogTk9UIGJpdCBhIGJpdCAqLwoJYyA9IH5iOyAgICAgICAgCglwcmludGYoIk5PVCBiaXQgYSBiaXQgOiAgIH4gJTA4WCA9ICUwOFhcblxuIiwgYixjKTsKCWdldGNoYXIoKTsgLyogcGF1c2UgKi8KCglwcmludGYoIlxuXG5cblxuIik7CglnZXRjaGFyKCk7IC8qIHBhdXNlICovCglyZXR1cm4gMDsKfQ==