#include <stdio.h>
/*
#include <math.h>
int* dec_char(unsigned char reg)
{
static int ans[8];
for(int i=0; i<8;i++)
{
ans[i] = reg%2;
reg =reg/2;
}
return ans;
}
int char_dec(int* reg2)
{
int result = 0;
for(int j=0; j<8; j++)
{
result +=(reg2[j]*pow(2,j));
}
return result;
}
unsigned char modifyBit(unsigned char reg, int pos, int mode) {
// Write your code here
int* result = dec_char(reg);
result[pos]&=mode;
unsigned char final_result = (unsigned char)char_dec(result);
return final_result;
}
*/
unsigned char modifyBit(unsigned char reg, int pos, int mode) {
// Write your code here
int final_result;
if(mode == 1)
{
reg=reg|(1<<pos);
}
else
{
reg=reg&~(1<<pos);
}
return reg;
}
int main() {
unsigned char reg;
int pos, mode;
scanf("%hhu %d %d", ®, &pos, &mode);
printf("%d", modifyBit(reg, pos, mode));
return 0;
}
Input
10 3 1
Expected Output
10