#include <stdio.h> #include <stdint.h> #include <cstdlib> 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", ®); // ADC_Result *adc = (ADC_Result *)malloc(sizeof(ADC_Result)); // adc->adc_reg = reg; // printf("Channel: %u\n",adc->channel); // printf("ADC Value: %u",adc->adc_value); ADC_Result adc; adc.adc_reg = reg; printf("Channel: %u\n",adc.channel); printf("ADC Value: %u",adc.adc_value); // Fill union and print channel and adc_value return 0; }
Test Cases
Test Results
Input
0xC3F5
Expected Output
Channel: 12 ADC Value: 1013