#define bitset(var,bitno) ((var)|=(1<<(bitno))) #define bitclr(var,bitno) ((var)&=~(1<<(bitno))) #define bittst(var,bitno) (var & (1 << (bitno))) unsigned char i,j,k; main() { i = 0x24; j = 0xC5; k = 0x4D; i++; /* a, increment */ j--; /* b, decrement */ k = j | i; /* c, bitwise OR */ i = i >> 3; /* d, right shift by 3 */ j = j << 2; /* e, left shift by 2 */ j = j & 0x30; /* f, bitwise AND */ k = ~k; /* g, bitwise negation */ k = k ^ j; /* h, bitwise XOR */ i = i - j; /* i , subtraction */ k = k + j; /* j , addition */ i = bitset(i,3); /* k, set a bit to '1' */ j = bitclr(j,5); /* l, clear a bit to '0' */ printf ("i: %x, j: %x, k: %x\n",i,j,k); }