All submissions

Extract the Nibble from an 8-bit Register

Code

#include <stdio.h>

unsigned int extractNibble(unsigned int reg, int pos) {
    if(reg > 255) {
        printf("Number greater than 8 bytes!\n");
         return -1;
    } else if(reg < 0) {
        printf("Number cannot be negative!\n");
         return -1;
    } else {
        if(pos == 1) {
            return reg >> 4;
        } else if(pos == 0) {
             return reg & 0x0F;
        } else {
            printf("Invalid position!\n");
            return -1;
        }
    }
}

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

Solving Approach

 

 

 

Loading...

Input

170 0

Expected Output

10