How do you plan to solve it?
If we want to get upper nibble, i think shift bit is faster.
With lower nibble, we get 4 bit by AND with 0x0F
#include <stdio.h>
unsigned char extractNibble(unsigned char reg, int pos) {
// Write your code here
if(pos == 0){
reg = reg & 0x0F;
} else {
reg = (reg & 0xF0) >> 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