#define mask 32
void printdata(int v, int m){
for(m;m>0;m = m >>1){ printf("%d",!!(v & m)); } printf("\n");
}
/*set bit to one or zero and output the binary*/
void set(int* v, int num){
*v=((*v)^num); /*0^0=0 and 1^0=1* therefore the operator will set the bit to 1 or 0*/ printdata(*v,mask);
}
int main(){
int a; int m; do{ printf(" enter number(number>32 to quit):\n"); scanf("%d",&a); if(a<32){ printdata(a,mask); printf("the current number is: %d\n",a); printf("set bit:\n"); scanf("%d",&m); set(&a,m); printf("The new number: %d\n", a); printf("unset bit:\n"); scanf("%d",&m); set(&a,m); printf("The new Number: %d\n", a);
}
}while(a<32);
}
</pre>