#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { // Write your code here unsigned char nibble_bitmask = 0xF; if(pos) { /* Logic for extracting Upper Nibble (Bits: [4:7] ) */ reg = reg >> 4; reg &= nibble_bitmask; } else { /* Logic for extracting Lower Nibble (Bits: [0:3] ) */ reg &= nibble_bitmask; } return reg; } 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