#include <stdio.h>
unsigned char extractNibble(unsigned char reg, int pos) {
if (pos == 0) {
// Lower nibble (bits 0-3)
return reg & 0x0F;
} else if (pos == 1) {
// Upper nibble (bits 4-7)
return (reg >> 4) & 0x0F;
} else {
// Invalid position, return 0
return 0;
}
}
int main() {
unsigned char reg;
int pos;
scanf("%hhu %d", ®, &pos);
printf("%d", extractNibble(reg, pos));
return 0;
}
Input
170 0
Expected Output
10