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