#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { reg = (pos==1) ? (reg >> 4) : (reg & 0x0f); return reg; } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
higher nibble by shifting the i/p and lower nibble by masking the higher bits via and operation.
Test Cases
Test Results
Input
170 0
Expected Output
10