All submissions

Extract the Nibble from an 8-bit Register

Code

#include <stdio.h>

unsigned char extractNibble(unsigned char reg, int pos) {
    unsigned int output = 0;
    if(pos == 0) {
        return reg & 0x0F;
    }
    else if(pos == 1) {
        return (reg & 0xF0) >> 4;
    }
    
}

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

Solving Approach

If pos is 0, we extract the lower nibble using bitwise AND. 

If pos is 1, we extract the higher nibble using bitwise AND and we right shift the output by 4 bits to bring it to the places of the lower nibble.

 

 

Loading...

Input

170 0

Expected Output

10