#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { // Binary: 1010 1011 if (pos==0){ // Extract lower nibble (B) unsigned char lower = reg & 0x0F; return lower;} else{ // Extract upper nibble (A) unsigned char upper = (reg >> 4) & 0x0F; return upper;} } 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