#include <iostream> #include <cstdint> using namespace std; enum class AdcConfig : uint8_t { ChannelEnable = 1 << 0, // 0b00000001 InterruptEnable = 1 << 1, // 0b00000010 DMAEnable = 1 << 2 // 0b00000100 }; // implement void printConfig(uint8_t cfg) void printConfig(uint8_t cfg) { if (cfg & static_cast<uint8_t>(AdcConfig::ChannelEnable)) cout << "ChannelEnable "; if (cfg & static_cast<uint8_t>(AdcConfig::InterruptEnable)) cout << "InterruptEnable "; if (cfg & static_cast<uint8_t>(AdcConfig::DMAEnable)) cout << "DMAEnable "; if (cfg == 0) cout << "None\t"; } int main() { int ch, intr, dma; cin >> ch >> intr >> dma; uint8_t cfg = 0; if (ch) cfg |= static_cast<uint8_t>(AdcConfig::ChannelEnable); if (intr) cfg |= static_cast<uint8_t>(AdcConfig::InterruptEnable); if (dma) cfg |= static_cast<uint8_t>(AdcConfig::DMAEnable); printConfig(cfg); return 0; }
Test Cases
Test Results
Input
1 0 1
Expected Output
ChannelEnable DMAEnable