Set the Bit in an 8-bit Register

Code

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

uint8_t set_bit(uint8_t reg, uint8_t pos) {
    // Your code here
    reg |= (1<<pos);
    return reg;
}

int main() {
    uint8_t reg, pos;
    scanf("%hhu %hhu", &reg, &pos);  // Accept register value and position
    uint8_t result = set_bit(reg, pos);
    printf("%u", result);         // Output the result as an integer
    return 0;
}

Solving Approach

  1. To set a bit, without affecting other register values, we use OR operator.

  2. Just left shift the value 1, it moves to the position of the bit we want to set. Remember that all other values are now 0.

  3. So we effectively set only one value and leave all others unchanged.

 

 

Upvote
Downvote
Loading...

Input

5 1

Expected Output

7