#include <stdio.h> #include <stdint.h> uint8_t set_range(uint8_t reg, uint8_t start, uint8_t end) { // Your code here int maskStart = 0, maskEnd = 0; for(int i=0; i<=end; i++){ maskEnd = maskEnd << 1; maskEnd += 1; } for(int i=0; i<start; i++){ maskStart = maskStart << 1; maskStart += 1; } maskEnd ^= maskStart; reg = reg | maskEnd; return reg ; } 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