#include <stdio.h> #include <stdint.h> unsigned char extractNibble(unsigned char reg, int pos) { uint16_t result = 0x00; if(pos == 1) { for(int i = 4; i >= 0 ; i--) { result = (reg >> i)& 0x0F ; } //printf("%d \n",result); } else { for(int i = 4; i >= 0 ; i--) { result = (reg >> i)& 0x0F ; result |= result; } } return result; } 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