#include <stdio.h>
unsigned char modifyBit(unsigned char reg, int pos, int mode) {
// Write your code here
// 10 = 00001010
if(mode==1)
return reg|=(1<<pos);
else if(mode==0)
return reg&=~(1<<pos);
}
int main() {
unsigned char reg;
int pos, mode;
scanf("%hhu %d %d", ®, &pos, &mode);
printf("%d", modifyBit(reg, pos, mode));
return 0;
}
reg | (1 << pos)1 to the left by pos places and ORs it with reg.pos becomes 1.reg & ~(1 << pos)1 to the left by pos places, inverts it with ~, and ANDs with reg.pos becomes 0.reg, pos, and mode.mode = 1, set the bit at position pos.mode = 0, clear the bit at position pos.
Input
10 3 1
Expected Output
10