#include <stdio.h> #include <stdint.h> // ADC_result typedef union { struct { uint16_t adc_val : 12; uint8_t adc_ch : 4; } bytes; uint16_t reg; } adc_res; int main() { uint16_t reg; scanf("%hx", ®); // Fill union and print channel and adc_value adc_res adc; adc.reg = reg; printf("Channel: %u\n", adc.bytes.adc_ch); printf("ADC Value: %u", adc.bytes.adc_val); return 0; }
Test Cases
Test Results
Input
0xC3F5
Expected Output
Channel: 12 ADC Value: 1013