Форум программистов, компьютерный форум CyberForum.ru

Битовые поля - C++

Восстановить пароль Регистрация
 
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
01.11.2012, 15:54     Битовые поля #1
Подскажмте пожалуйста новичку, что такое битовые поля.Уже перечитываю раз 11ый, а никак понять не могу.
Скажите пожалуйста популярным языком, что это такое, где применяется, как этим управлять.
только в поисковики не отсылать - там уже кучу статей перечитал - а всё непонятно(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 15:54     Битовые поля
Посмотрите здесь:

C++ битовые поля!!
C++ Битовые поля
C++ Битовые поля
Битовые поля C++
C++ Битовые поля
Битовые операции, битовые поля. C++
C++ Битовые поля
C++ Битовые поля

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MLPMan
Кандёхаем веселее!
 Аватар для MLPMan
280 / 275 / 34
Регистрация: 02.10.2012
Сообщений: 1,931
01.11.2012, 18:30     Битовые поля #2
Не уверен, но вроде, это когда каждый бит переменной делают, как бы, отдельной переменной, например, функция GetFileAttributes(LPCTSTR lpFileName) возвращает DWORD, и определены константы

FILE_ATTRIBUTE_READONLY = 1; (двоичное 00000001)
FILE_ATTRIBUTE_HIDDEN = 2; (двоичное 00000010)
FILE_ATTRIBUTE_SYSTEM = 4; (двоичное 00000100)
FILE_ATTRIBUTE_DIRECTORY = 16; (двоичное 00001000)

И если она возвращает 5 (00000101), то атрибуты системный, только чтение.
Agent Smith
40 / 40 / 9
Регистрация: 24.11.2012
Сообщений: 200
09.12.2012, 14:47     Битовые поля #3
битовое поле-это типа тип данных такой. оно позволяет оперировать отдельными битами в памяти с помощью побитовых операций. вот например смотри как можно двоичный код числа вывести с помощью битового поля и объединения(union)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
typedef struct bit_pole//объявляем новый тип данных типа структура, в которой объявлены 8 битовых полей 
    {                             //по 1 биту каждое
    unsigned a1:1;
    unsigned a2:1;
    unsigned a3:1;
    unsigned a4:1;
    unsigned a5:1;
    unsigned a6:1;
    unsigned a7:1;
    unsigned a8:1;
    };
    
typedef union dvoich// объявляем объединение 1-байтового числа и структуры с бит. полями.
   {                          //теперь можно записав в переменную "с" какое-нибудь число, вывести его     
    char c;                 //побитовое представление в памяти(двоичный код)
    struct bit_pole;
   };
int main()
 {
  union dvoich ch;// объявляем переменную типа объединение
  ch.c=5;// присваиваем полю "с" объединения значение 5
  printf("ch.c=%d\n",ch.c);// выводим поле "с". будет выведено "ch.c=5"
  printf("dvoichniy kod chisla %d raven %d%d%d%d%d%d%d%d",ch.c,ch.a8,ch.a7,ch.a6,ch.a5,ch.a4,ch.a3,ch.a2,ch.a1);// выводим битовые поля с конца, что связано с архитектурой intel-овских процессоров(число записывается задом наперед). будет выведено "00000101"
  getch();
  return 0;
 }
Yandex
Объявления
09.12.2012, 14:47     Битовые поля
Ответ Создать тему
Опции темы

Текущее время: 03:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru