/* Exercise 2.6 from "The C programming language" book by K&R */
#include <stdio.h>
/* sets n bit from position p in x like right n bits in y */
unsigned setbits(unsigned x, unsigned p, unsigned n, unsigned y)
{
return (x | ((~(~0 << n) & y) << (p+1-n)));
}
int main(void)
{
printf("%u\n",setbits(0x00, 5, 1, 0x01));
return 0;
}
----------