#include <stdio.h> unsigned char modifyBit(unsigned char reg, int pos, int mode) { unsigned char a = 2; if(pos > 0) { for(int i = 0; i < (pos-1); i++) { a = a*2; } } if(pos == 0) { a = 1; } //unsigned char s = 2^pos; unsigned char c = ~a; // Write your code here if(mode == 1) //set { reg = reg | a; } else if(mode == 0) //clear { reg = reg & c; } return reg; } int main() { unsigned char reg; int pos, mode; scanf("%hhu %d %d", ®, &pos, &mode); printf("%d", modifyBit(reg, pos, mode)); return 0; }
Test Cases
Test Results
Input
10 3 1
Expected Output
10