#include <stdio.h> #include <stdint.h> // typedef union{ // struct{ // uint16_t adc_value: 12; // uint16_t channel: 4; // }; // uint16_t adc_reg; // }ADC_Result; // int main(){ // uint16_t reg; // scanf("%hx",®);// Read hexadecimal input // ADC_Result adc; // adc.adc_reg = reg; // printf("Channel: %u\n",adc.channel); // printf("ADC Value: %u",adc.adc_value); // return 0; // } typedef union{ struct{ uint16_t adc_value:12; uint16_t adc_channel:4; }; uint16_t adc_reg; }ADC_Result; int main(){ uint16_t reg; scanf("%hx",®); ADC_Result adc; adc.adc_reg = reg; printf("Channel: %u\n", adc.adc_channel); printf("ADC Value: %u", adc.adc_value); return 0; }
Test Cases
Test Results
Input
0xC3F5
Expected Output
Channel: 12 ADC Value: 1013