#include <stdio.h>
unsigned setbits(unsigned x,int p,int n,unsigned y);
void bynaryprint(unsigned x);
int main(void) {
bynaryprint( setbits((unsigned)12, 3, 2, (unsigned)57));
}
unsigned setbits(unsigned x,int p,int n,unsigned y){
return (( y & ~(~0 << n) ) << ((p + 1) - n) ) | (x & ~(~(~0 << n) << (p+1-n)));
}
void bynaryprint(unsigned x){
int i, ch;
for(i = ((sizeof x) * 8) - 1; i >=0; i--){
ch = (x >> i) & 1;
printf("%d", ch);
}
}