#include <stdio.h> #include <stdint.h> uint8_t clear_bit(uint8_t reg, uint8_t pos) { reg &= ~(1<<pos); return reg; } int main() { uint8_t reg, pos; scanf("%hhu %hhu", ®, &pos); uint8_t result = clear_bit(reg, pos); printf("%u", result); return 0; }
To clear a bit, we need to use the complement of the mask for the specific bit and then use the AND & with the register. ANDing 1 with a bit gives 1 and 0 otherwise.
Test Cases
Test Results
Input
7 0
Expected Output
6