Инструменты пользователя

Инструменты сайта


bitovye_polja

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

bitovye_polja [2020/06/13 13:45] (текущий)
Строка 1: Строка 1:
 +====== Битовые поля ======
 +Мы с Вами рассматривали понятие структуры. Полями структур могут быть не только переменные, но и другие образования, в частности, поля битов. Хотя правила языка не имеют ограничений на характер этих полей, кроме требования, чтобы они помещались в объеме машинного слова, в типичных применениях поля битов служат для хранения целых данных (чаще типа unsigned).
  
 +Описание поля битов состоит из описания типа поля, его имени и указанного после двоеточия размера поля в битах, например: unsigned status: 6;. 
 +
 +Если имя поля опущено, то создается скрытое поле. Если размер поля битов представлен числом 0, то следующее поле битов начнется с границы машинного слова. 
 +
 +Пример.
 +<file>
 +#include <iostream>
 +using namespace std;
 +void Binary(unsigned);
 +void main()
 +{
 +   struct Bits
 +   
 +     unsigned bit1: 3;
 +     unsigned bit2: 2;
 +     unsigned bit3: 3;
 +   } Good;
 +   
 +   Good.bit1 = 4;
 +   Good.bit2 = 3;
 +   Good.bit3 = 6;
 +   cout<<"Show: "<<Good.bit1<<" ";
 +   cout<<Good.bit2<<" ";
 +   cout<<Good.bit3<<"\n\n";
 +   cout << "Sum: ";
 +   Binary(Good.bit1 + Good.bit2 + Good.bit3);
 +
 +// Функция выводит на экран двоичное представление числа A.
 +void Binary (unsigned A) 
 +{
 +    int i,N;
 +    if(A>255)
 + N = 15;
 +    else
 + N = 7;
 +    for (i=N; i >= 0; i--)
 +    { 
 + cout<<((A>>i)&1);
 +        if(i==8)
 + cout<<" ";
 +    }
 +    cout<<"\n\n";
 +}
 +</file>
bitovye_polja.txt · Последнее изменение: 2020/06/13 13:45 (внешнее изменение)