#include <stdio.h> #include <stdint.h> uint8_t clear_bit(uint8_t reg, uint8_t pos) { return reg&~(1<<pos); } int main() { uint8_t reg, pos; scanf("%hhu %hhu", ®, &pos); uint8_t result = clear_bit(reg, pos); printf("%u", result); return 0; }
concept is to clear one bit in 8 bit register without touching the other bits...
real time example based like turn off one led light without touching the others ...
so, use mask that shifts the position use AND,INVERT operator to clear the data.
Test Cases
Test Results
Input
7 0
Expected Output
6