#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { // Write your code here // if(pos == 0) { // reg &= 0x0f; // } // else { // reg = reg>>4; // reg &= 0x0f; // } reg >>= (pos * 4); reg &= 0x0f; return reg; } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
instead of conditional execution, we can see that pos*4 gives us the amount we have to right shift by.
Test Cases
Test Results
Input
170 0
Expected Output
10