#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;
}
Upvote
Downvote
Loading...

Input

1 0 1

Expected Output

ChannelEnable DMAEnable