#include <stdio.h> #include <cstdint> #define HNIBBLE 1 #define LNIBBLE 0 #define MASK 0x0F unsigned char extractNibble(unsigned char reg, int pos) { uint8_t nibble; if(pos ==HNIBBLE){ nibble = (reg >> 4) & MASK; } if(pos ==LNIBBLE){ nibble= (reg & 0x0F); } return nibble; } 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