#include <stdio.h> #include <stdint.h> unsigned char extractNibble(unsigned char reg, int pos) { uint8_t bit_mask = 0x0f; if (pos) { bit_mask <<= 4; return (reg & bit_mask) >> 4; } return reg & bit_mask; } 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