#include <stdio.h> #include <stdint.h> uint8_t set_range(uint8_t reg, uint8_t start, uint8_t end) { // Your code here reg = reg | ~((-1 << (end+1)) | (-1 >> (8-start))); uint8_t g1 = (-1 << (end+1)); uint8_t g2 = ((uint8_t)0xFF >> (8-start)); // printf("%hhu\n", g1); // printf("%hhu\n", g2); return reg | ~(g1 | g2); } 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