#include <iostream>
#include <cstdint>
using namespace std;
// Declare enum class AdcConfig : uint8_t
// ChannelEnable = 1
// InterruptEnable = 2
// DMAEnable = 4
enum class AdcConfig : uint8_t { ChannelEnable = 1, InterruptEnable = 2, DMAEnable = 4 };
const char* AdcConfigString[] {
"ChannelEnable",
"InterruptEnable",
"DMAEnable"};
// Implement void printConfig(uint8_t cfg)
void printConfig(uint8_t cfg)
{
if (!cfg)
{
cout << "None" << endl;
return;
}
for ( int i = 0; i < 3; i++)
{
if ( cfg & ( 1 << i))
{
cout << AdcConfigString[i] << " " ;
}
}
}
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