#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { // Write your code here if(pos==0) return reg & 0x0F; //Extract lower nibble else return (reg >> 4) & 0x0F; //Extract upper nibble } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
masking concept used and for upper nibble we only need shift that higher nibble to lower nibble side.
Test Cases
Test Results
Input
170 0
Expected Output
10