// Использование enam #include <iostream> // enam - значения присваиваются с нуля; значения последующего увеличивается на 1. // lg_EN==0, lg_RU==1, lg_KZ==2 enum lang {lg_EN, lg_RU, lg_KZ}; // Можно инициировать константой // Диапазон значений определяется: n - макс. значение, m - мин. целое. // Верхняя граница диапозона Rmax == 2**m-1 (два в степени m минус один). // Тогда Rmax > n // Нижняя граница Rmin при m >= 0 Rmin == 0. При m<0 Rmin == 2**m + 1 enum bits {BIT_0=1, BIT_1=2, BIT_2=4, BIT_3=8}; // == 15 // Почему не 8? Rmax=2**3-1=8-1=7 ошибка, Rmax=2**4-1=15 int main() { // При преобразовании главное что бы входило в диапозон. bits b1=bits(5); // входит в диапозон b1=bits(2); switch(b1) { case BIT_0: std::cout<<"bit=1\n";break; case BIT_1: std::cout<<"bit=2\n";break; case BIT_2: std::cout<<"bit=4\n";break; case BIT_3: std::cout<<"bit=8\n";break; default: std::cout<<"bit not implimentation\n"; }; int i=0; std::cin>>i; return 0; }