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

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


bitovye_polja

Различия

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

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

bitovye_polja [2010/10/19 18:37] (текущий)
Строка 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 · Последние изменения: 2010/10/19 18:37 (внешнее изменение)