1. Set or Clear a Specific Bit in a Register

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>

unsigned char modifyBit(unsigned char reg, int pos, int mode) {
    // Write your code here
    if (mode == 1){
        reg |= (1 << pos);
    }else{
        reg = reg  & (~(1<<pos));
    }
    return reg;
}

int main() {
    unsigned char reg;
    int pos, mode;
    scanf("%hhu %d %d", &reg, &pos, &mode);
    printf("%d", modifyBit(reg, pos, mode));
    return 0;
}

Solving Approach

In the case we need to set the bit, we just need to move to this bit and turn it on, no matter whether it is on or off.

In  case clear, we move to bit to be cleared and & with bit 0.

 

 

Was this helpful?
Upvote
Downvote