#include <stdio.h>
/*
* Đề bài là set/clear bit `mode` tại vị trí `mode` của thanh ghi `reg`
** Set bit:
* Step 1: Tạo ra một mask bit tại vị trí `pos`:
0000 1000 = 1 << 3 (shift left)
* Step 2: Sử dụng phép | (or) để set bit.
reg | (0000 1000) thì bit số 3 sẽ được set lên 1
** Clear bit:
* Step 1: Tạo một mask bit như sau:
1111 0111 = ~(1 << 3) (reverse and shift left)
* Step 2: Sử dụng phép & (and) để clear bit:
reg & (1111 0111)
*/
unsigned char modifyBit(unsigned char reg, int pos, int mode) {
if (mode) return reg | (1 << pos);
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;
}