Set or Clear a Specific Bit in a Register

Code

#include <stdio.h>

int main(){
    unsigned char reg; // thanh ghi 8 bit
    int pos; // vi tri bit
    int op; // thao tac ( 1= set, 0= clear)

    scanf("%hhu %d %d", &reg, &pos, &op);
    if (op == 1){
        // set bit 
        reg = reg | (1 << pos);
    } else{
        // clear bit
        reg = reg & ~ (1 << pos);

    }
    printf("%d\n", reg);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

10 3 1

Expected Output

10