#include <stdio.h> unsigned char extractNibble(unsigned char reg, int pos) { unsigned char nibble = 0; if( pos == 0) { for(int i =0 ; i< 4; i ++) { unsigned char bit = (reg >> i) & 1 ; nibble |= bit << i; } } else { for(int i =4 ; i< 8; i ++) { unsigned char bit = (reg >> i) & 1 ; nibble |= bit << (i % 4); } } return nibble; } 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