Set Multiple Bits in 8-bit Register

Code

#include <stdio.h>

int main() {
    unsigned char reg;
    int start, end;

    scanf("%hhu", &reg);   // 8-bit register
    scanf("%d", &start);
    scanf("%d", &end);

    unsigned char mask = ((1 << (end - start + 1)) - 1) << start;
    reg |= mask;

    printf("%u", reg);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0 1 3

Expected Output

14