#include <iostream>
#include <cstdint>
using namespace std;
// your code here: declare enum class AdcConfig : uint8_t
enum class AdcConfig : uint8_t
{
ChannelEnable = 1,
InterruptEnable = 2,
DMAEnable = 4
};
// with ChannelEnable=1, InterruptEnable=2, DMAEnable=4
void printConfig(uint8_t cfg)
{
int flag =0;
if(cfg & static_cast<uint8_t>(AdcConfig::ChannelEnable))
{
cout<<"ChannelEnable";
flag = 1;
}
if(cfg & static_cast<uint8_t>(AdcConfig::InterruptEnable))
{
if(flag) cout<< ' ';
cout<<"InterruptEnable";
flag = 1;
}
if(cfg & static_cast<uint8_t>(AdcConfig::DMAEnable))
{
if(flag) cout<< ' ';
cout<<"DMAEnable";
flag =1;
}
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