/************************************************************************/
/* program op_bit01.c							*/
/* ukazuje bitove posuny, a zakladni bitove operace and, or, xor	*/
/* a bitovy doplnek							*/
/************************************************************************/

#include <stdio.h>

int main()
{
 printf("1 << 1 = \t%d\t%#x\n", 1 << 1, 1 << 1);
 printf("1 << 7 = \t%d\t%#x\n", 1 << 7, 1 << 7);

 printf("-1 >> 1 = \t%d\t%#x\n", -1 >> 1, -1 >> 1);
 printf("1024 >> 9 = \t%d\t%#x\n", 1024 >> 9, 1024 >> 9);

 printf("13 & 6 = \t%d\t%#x\n", 13 & 6, 13 & 6);
 printf("13 | 6 = \t%d\t%#x\n", 13 | 6, 13 | 6);
 printf("13 ^ 6 = \t%d\t%#x\n", 13 ^ 6, 13 ^ 6);

 printf("2 & 1 = \t%d\t%#x\n", 2 & 1, 2 & 1);
 printf("2 | 1 = \t%d\t%#x\n", 2 | 1, 2 | 1);
 printf("2 ^ 1 = \t%d\t%#x\n", 2 ^ 1, 2 ^ 1);

 return 0;
}

/* BC31
1 << 1 =        2       0x2
1 << 7 =        128     0x80
-1 >> 1 =       -1      0xffff
1024 >> 9 =     2       0x2
13 & 6 =        4       0x4
13 | 6 =        15      0xf
13 ^ 6 =        11      0xb
2 & 1 =         0       0
2 | 1 =         3       0x3
2 ^ 1 =         3       0x3
*/