#include <stdio.h> #include <stdint.h> uint8_t set_range(uint8_t reg, uint8_t start, uint8_t end) { uint8_t val = 0; while (start <= end) { if (end == 0) { val = val + (1 << end); break; } val = val + (1 << end); end --; } reg = reg | val; // Your code here return reg; //uint8_t mask = ((1 << (end - start + 1)) - 1) << start; //return reg | mask; } int main() { uint8_t reg, start, end; scanf("%hhu %hhu %hhu", ®, &start, &end); printf("%u", set_range(reg, start, end)); return 0; }
Test Cases
Test Results
Input
0 1 3
Expected Output
14