17. Extract the Nibble from an 8-bit Register

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>

unsigned char extractNibble(unsigned char reg, int pos) {
   if(pos==0){
     return(reg & 0b00001111);
}
else{return((reg & 0b11110000)>>4);}

}

int main() {
    unsigned char reg;
    int pos;
    scanf("%hhu %d", &reg, &pos);
    printf("%d", extractNibble(reg, pos));
    return 0;
}

Solving Approach

Mask off the unnecessary bits, and shift the bits to the right in the case of the upper section, couldn't use hex values on phone for some reason

 

 

Was this helpful?
Upvote
Downvote