#include <stdio.h> #include <stdint.h> uint8_t set_bit(uint8_t reg, uint8_t pos) { uint8_t tem = ( 1 << pos); for (uint8_t i = pos ; i < 8 ; i ++) { if ((reg & tem) == 00000000) { reg |= (1 << i); break; } } 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; }
Test Cases
Test Results
Input
5 1
Expected Output
7