#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { // Write your code here // unsigned char out; if (!pos){ reg &= (0x0F); }else { reg &= (0xF0) >> 4; } return reg; } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
I did bitwise AND operation with a mask. If position is MSB, i moved the MSB to LSB using shift operator >>4.
Test Cases
Test Results
Input
170 0
Expected Output
10