#include <stdio.h>
unsigned char extractNibble(unsigned char reg, int pos) {
if (pos == 0) {
// Extract lower nibble (bits 3 to 0)
return reg & 0x0F;
} else if (pos == 1) {
// Extract upper nibble (bits 7 to 4)
return (reg >> 4) & 0x0F;
} else {
// Invalid position
return 255; // Using 255 as an error flag
}
}
int main() {
unsigned char reg;
int pos;
scanf("%hhu %d", ®, &pos);
printf("%d", extractNibble(reg, pos));
return 0;
}
Input
170 0
Expected Output
10