#include <stdio.h> #include <stdint.h> uint32_t set_bits(uint32_t reg, uint8_t pos, uint8_t len) { for(uint32_t i = 0; i<len; i++){ reg |= (1<<(pos+i)); } return reg; } int main() { uint32_t reg; uint8_t pos, len; scanf("%u %hhu %hhu", ®, &pos, &len); printf("%u", set_bits(reg, pos, len)); return 0; }
we used 'for' loop to set len no of bits
the pos inside the loop is used as an offset to tell the initial bit to the program
Test Cases
Test Results
Input
0 4 3
Expected Output
112