#include <stdio.h> #include <stdint.h> #define SET(reg, pos) reg | (1U << pos) #define CLEAR(reg, pos) reg & ~(1U << pos) uint8_t modifyBit(uint8_t reg, int pos, int mode) { if(mode) { return SET(reg, pos); } else { return CLEAR(reg, pos); } } int main() { uint8_t 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