#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { if (pos == 0) { // Extract lower nibble (bits 0–3) return reg & 0x0F; } else { // Extract upper nibble (bits 4–7) return (reg >> 4) & 0x0F; } } int main() { unsigned char reg; int pos; // Read the byte and nibble position (0 for lower, 1 for upper) scanf("%hhu %d", ®, &pos); // Print the extracted nibble as integer printf("%d\n", extractNibble(reg, pos)); return 0; }
Test Cases
Test Results
Input
170 0
Expected Output
10