#include <stdio.h> #define LOWER_NIBBLE_MASK 0xF #define UPPER_NIBBLE_MASK 0xF0 unsigned char extractNibble(unsigned char reg, int pos) { return (pos == 0) ? (reg & LOWER_NIBBLE_MASK) : ((reg & UPPER_NIBBLE_MASK) >> 4); } 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