#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { if(pos==0){ return(reg & 0b00001111); } else{return((reg & 0b11110000)>>4);} } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
Mask off the unnecessary bits, and shift the bits to the right in the case of the upper section, couldn't use hex values on phone for some reason
Test Cases
Test Results
Input
170 0
Expected Output
10