#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", ®, &pos); // Accept register value and position
uint8_t result = set_bit(reg, pos);
printf("%u", result); // Output the result as an integer
return 0;
}To set a bit, without affecting other register values, we use OR operator.
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.
So we effectively set only one value and leave all others unchanged.
Input
5 1
Expected Output
7