#include <stdio.h> #include <stdint.h> #include <math.h> uint8_t clear_bit(uint8_t reg, uint8_t pos) { // Your code here int bitvalue= pow(2,pos); reg &= (0xFF ^ bitvalue); return reg; } int main() { uint8_t reg, pos; scanf("%hhu %hhu", ®, &pos); uint8_t result = clear_bit(reg, pos); printf("%u", result); return 0; }
Do a bitwise AND with the one complement of the bit value.
So if bit 3, it is 0x08= 00001000 , and its ones complement is 0xF7=11110111
doing bitwise AND with the register will clear bit 3
Test Cases
Test Results
Input
7 0
Expected Output
6