Advertisement
ya_makaron

дз шереметы

Sep 30th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. #include <iostream>
  2. #include "conio.h"
  3. #include <bitset>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     setlocale(LC_ALL, "Russian");
  10.  
  11.     while (true)
  12.     {
  13.         cout << "Нажмите 1, чтобы перевести из 10 в 2" << endl;
  14.         cout << "Нажмите 2, чтобы перевести из 2 в 10" << endl;
  15.         cout << "Нажмите 3, чтобы перевести из 8 в 2" << endl;
  16.  
  17.         int key = _getch();
  18.         switch (key)
  19.         {
  20.             case 49:
  21.             {
  22.                 int i;
  23.                 cout << "Введите число в 10 для перевода в 2: ";
  24.                 cin >> i;
  25.                 bitset<32> bitset = i;
  26.                 cout << "Binary: " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
  27.                 break;
  28.             }
  29.             case 50:
  30.             {
  31.                 char text[32];
  32.                 cout << "Введите число в 2 для перевода в 10: ";
  33.                 cin >> text;
  34.  
  35.                 int len = strlen(text);
  36.  
  37.                 bool result = true;
  38.                 for (int i = 0; i < len; i++)
  39.                 {
  40.                     if (text[i] != '0' && text[i] != '1')
  41.                     {
  42.                         cout << "\nНеправильный ввод. Повторите попытку снова" << endl;
  43.                         result = false;
  44.                         break;
  45.                     }
  46.                 }
  47.                 if (!result) break;
  48.  
  49.                 bitset<32> value(text);
  50.                 cout << "dec:" << value.to_ulong() << endl;
  51.                 break;
  52.             }
  53.             case 51:
  54.             {
  55.                 char text[64];
  56.                 cout << "Введите число в 8 для перевода в 2: ";
  57.                 cin >> text;
  58.  
  59.                 int len = strlen(text);
  60.  
  61.                 bool result = true;
  62.                 for (int i = 0; i < len; i++)
  63.                 {
  64.                     if (!(text[i] >= '0' && text[i] <= '7'))
  65.                     {
  66.                         cout << "\nНеправильный ввод. Повторите попытку снова" << endl;
  67.                         result = false;
  68.                         break;
  69.                     }
  70.                     if (!result) break;
  71.                     switch (text[i])
  72.                     {
  73.                         case '0': cout << "000"; break;
  74.                         case '1': cout << "001"; break;
  75.                         case '2': cout << "010"; break;
  76.                         case '3': cout << "011"; break;
  77.                         case '4': cout << "100"; break;
  78.                         case '5': cout << "101"; break;
  79.                         case '6': cout << "110"; break;
  80.                         case '7': cout << "111"; break;
  81.                     }
  82.                 }
  83.                 cout << endl;
  84.                 break;
  85.             }
  86.         }
  87.     }
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement