All submissions

Clear the Bit in an 8-bit Register

 Code

#include <stdio.h>
#include <stdint.h>

uint8_t clear_bit(uint8_t reg, uint8_t pos) {
    // Your code here
    reg &= ~( 1U << pos );
    return reg;
}

int main() {
    uint8_t reg, pos;
    scanf("%hhu %hhu", &reg, &pos);
    uint8_t result = clear_bit(reg, pos);
    printf("%u", result);
    return 0;
}

Solving Approach

consider pos=0, reg=7=0000 0111

  1. first making a mask and setting 1 at the given position "code: ( 1U << pos ), output: 00000001"

  2. then inverting the mask using "NOT" operation "code: ~( 1U << pos ), output: 11111110"

  3. then anding ("AND") with the reg variable

 

Loading...

Input

7 0

Expected Output

6