#include <stdio.h>
#include <stdint.h>
#include <math.h>
uint8_t set_bit(uint8_t reg, uint8_t pos) {
// Your code here
int bitvalue= pow(2,pos);
reg |= bitvalue;
return reg;
}
int main() {
uint8_t reg, pos;
scanf("%hhu %hhu", ®, &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
Find th evalue of the bit at pos using pow(2,pos)
then bitwise OR it with the register to set it in the register.