#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;
}
Input
1 0 1
Expected Output
ChannelEnable DMAEnable