/* Exercise 2.7 from "The C programming language" book by K&R */
#include <stdio.h>
/* invert n bit from position p in x */
unsigned invert(unsigned x, unsigned p, unsigned n)
{
return (x ^ (~(~0 << n) << (p+1-n)));
}
int main(void)
{
printf("%u\n", invert(0x00, 5, 2));
return 0;
}
----------