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) {
    // check that reg is within bounds 
    if (reg < 0 || reg > 255) {
        printf("Reg value out of bounds!\n");
        return -1; 
    }

    //check that pos is within bounds 
    if (pos < 0 || pos > 7) {
        printf("Pos value out of bounds!\n");
        return -1;
    } 
    
    return (reg |= (1 << pos)); 
}

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
 

 

 

Upvote
Downvote
Loading...

Input

5 1

Expected Output

7