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

Битовые поля структур: что такое и зачем они нужны? - C++

Восстановить пароль Регистрация
 
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
17.03.2013, 10:45     Битовые поля структур: что такое и зачем они нужны? #1
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 10:45     Битовые поля структур: что такое и зачем они нужны?
Посмотрите здесь:

сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? C++
C++ Что за векторы и зачем они нужны
Что такое статические и нестатические функции, и чем они различаются? C++
C++ Что такое h -файл и obj-файл?Зачем они нужны?
C++ Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.03.2013, 12:36     Битовые поля структур: что такое и зачем они нужны? #2
Чтобы было удобнее обращаться к отдельным битам.

Надо в низкоуровневых вещах вроде сетевых протоколов и т. п.

В принципе, можно пользоваться масками (и битовые поля компилируются в маски), но кому-то удобнее так.
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
17.03.2013, 13:12  [ТС]     Битовые поля структур: что такое и зачем они нужны? #3
OhMyGodSoLong, пример не покажете?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.03.2013, 13:41     Битовые поля структур: что такое и зачем они нужны? #4
Ну вот вам пример с потолка: заголовок TCP-пакета.
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
struct tcp_header {
    uint16_t src;
    uint16_t dst;
    uint32_t seq;
    uint32_t ack;
    
    uint16_t offset      : 4;
    uint16_t             : 3; // reserved
    
    uint16_t ECN_NS      : 1;
    uint16_t ECN_CWR     : 1;
    uint16_t ECN_ECE     : 1;
    
    uint16_t control_URG : 1;
    uint16_t control_ACK : 1;
    uint16_t control_PSH : 1;
    uint16_t control_RST : 1;
    uint16_t control_SYN : 1;
    uint16_t control_FIN : 1;
 
    uint16_t window;
    uint16_t checksum;
    uint16_t urgent;
};
Yandex
Объявления
17.03.2013, 13:41     Битовые поля структур: что такое и зачем они нужны?
Ответ Создать тему
Опции темы

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