18. Set Multiple Bits in 8-bit Register

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>
#include <stdint.h>

uint8_t set_range(uint8_t reg, uint8_t start, uint8_t end) {
    // Your code here
    uint8_t Bits_To_Set = (end - start) + 1;
    uint8_t Value = 1;
    while ( Bits_To_Set != 0 )
    {
        Value = Value * 2;
        Bits_To_Set--;
    }
    Value--;
    reg = reg | ( Value << start);

    return reg;
}

int main() {
    uint8_t reg, start, end;
    scanf("%hhu %hhu %hhu", &reg, &start, &end);
    printf("%u", set_range(reg, start, end));
    return 0;
}

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote