20. Clear Specific Bits in a 32-bit Register

Back To All Submissions
Previous Submission
Next Submission

Code

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

uint32_t clear_bits(uint32_t reg, uint8_t pos, uint8_t len){
    for(int i=0;i< len;i++){
        reg&=~(1<<(pos+i));
    }

    // mask =((1<<len)-1)<<pos;
    // reg&=~mask;

    return reg;
}

int main(){

    uint32_t reg;
    uint8_t pos,len;

    scanf("%u %hhu %hhu", &reg, &pos, &len);
    printf("%u", clear_bits(reg,pos,len));

    return 0;

}

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote