Поля битов.

Пример 1:

Показать, как “посмотреть” код нажатой на клавиатуре клавиши, включая и управляющие (Insert, Delete, стрелки и другие).

Решение от преподавателя:

int main()

{  /* Объявляем структурный тип, включающий восемь полей битов, каждый из которых имеет размерность один бит. */

   struct TMyByte

   {     unsigned b1:1;          unsigned b2:1;

          unsigned b3:1;          unsigned b4:1;

          unsigned b5:1;          unsigned b6:1;

          unsigned b7:1;         unsigned b8:1;

   }  ;

   union TUI

   /* Структурная переменная из восьми полей битов (но не массива, массив полей битов недопустим !) для представления кода символа ch в двоичной системе счисления */

       TMyByte MyB;

      /*Структурная переменная из двух полей битов, каждое длиной четыре, для получения шестнадцатеричного представления символа ch. */

         struct   {  unsigned n1:4;

                         unsigned n2:4;

                    }   num16;

       char ch;      // Символ

   }    N;

   cout<<"0--EXIT"<

   cout<<"Symbol  Code16   Code10       Code2"<

   while (1)

   {     cout<<"  ";

          N.ch=getche();

         /* Ввод символа. При этом клавишу “Enter” нажимать не надо и символ будет отображаться на экране. */

          if (N.ch=='0')break;

/* Вывод кода в шестнадцатеричной системе счисления */

          cout<<"      "<< hex<

/* Вывод кода в десятичной системе счисления */

              printf("        %d     ", N.num16.n2*16+N.num16.n1);

         gotoxy(30,wherey());

    /* Вывод восьми полей битов, т.е.

        вывод кода в двоичной системе счисления */

         cout<<N.MyB.b8<<N.MyB.b7<<N.MyB.b6<<N.MyB.b5<<

                     N.MyB.b4<<N.MyB.b3<<N.MyB.b2<<N.MyB.b1<<endl;

   }

 return 0;    }

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн