#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", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
Test Cases
Test Results
Input
170 0
Expected Output
10