#include <stdio.h> #include<stdint.h> unsigned char extractNibble(unsigned char reg, int pos) { uint8_t res = 0 ; if(pos ==0){ for(int i =0 ; i<4 ; i++){ int bits = (reg >>i ) &1 ; res |= (bits <<i ) ; } } else{ for(int i=4 ; i<8 ; i++ ){ int bits = (reg >> i) &1 ; res |= bits << i-4 ; } } return res ; } int main() { unsigned char reg; int pos; scanf("%hhu %d", ®, &pos); printf("%d", extractNibble(reg, pos)); return 0; }
Test Cases
Test Results
Input
170 0
Expected Output
10