#include <stdio.h>
unsigned char extractNibble(unsigned char reg, int pos) {
if (pos == 0) { // extract lower nibble
reg = reg & 0b00001111;
}
else if (pos == 1) { // extract upper nibble
reg = ((reg & 0b11110000) >> 4);
}
return reg;
}
int main() {
unsigned char reg;
int pos;
scanf("%hhu %d", ®, &pos);
printf("%d", extractNibble(reg, pos));
return 0;
}
Input
170 0
Expected Output
10