#include <stdio.h>
// Function to set bits from start to end
unsigned char setBitsInRange(unsigned char reg, int start, int end) {
unsigned char mask = ((1 << (end - start + 1)) - 1) << start;
return reg | mask;
}
int main() {
unsigned char reg;
int start, end;
// Input: register, start, end
scanf("%hhu %d %d", ®, &start, &end);
// Output: updated register
printf("%d", setBitsInRange(reg, start, end));
return 0;
}
Problem Statement
You are given:
Goal:
Set all bits from position start to end (inclusive) to 1, without changing other bits.
Solving Approach
Input
0 1 3
Expected Output
14