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

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

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 11:53     Битовые поля #1
C++
1
2
3
4
5
6
struct TKeyFlags
{
  int                          Old    :1;
  int                                 :6;
  int                          Current:1;
};
Почему то sizeof=4. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 11:53     Битовые поля
Посмотрите здесь:

C++ битовые поля!!
Битовые поля C++
C++ Битовые поля
C++ Битовые поля
Битовые операции, битовые поля. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
26.06.2012, 12:00     Битовые поля #2
Потому что по стандарту

Добавлено через 2 минуты
http://www.uclibc.org/docs/psABI-i386.pdf
раздел "Bit fields" на странице 32
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 12:06  [ТС]     Битовые поля #3
Нифига не понял.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
26.06.2012, 12:14     Битовые поля #4
Это документ по программным соглашениям. И там написаны правила упаковки битовых полей в структуру.

Добавлено через 5 минут
Чтение битового поля
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 12:42  [ТС]     Битовые поля #5
Цитата Сообщение от Evg Посмотреть сообщение
Это документ по программным соглашениям.
Ну это то как раз единственно, что понятно.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
26.06.2012, 12:48     Битовые поля #6
Дальше идёт ссылка. Если тебе и после этого непонятно, то завязывай лучше с программированием. Или забивай на такие вопросы и принимай их как данность сверху
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 14:51  [ТС]     Битовые поля #7
Цитата Сообщение от Evg Посмотреть сообщение
Дальше идёт ссылка.
Так я читал то, что по ссылке. Точнее смотрел, чтение не осилил.

Добавлено через 3 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Если тебе и после этого непонятно, то завязывай лучше с программированием.
Ты в первый день умел? По битовым полям у меня сейчас первый день и вопрос только о том, как располагаются данные в рабочей программе и точно ли в битах задана длина полей. При том, что ты мне без каких либо знаний в области битовых полей предлагаешь сразу разбирать английский. То есть одновременно мучаться с иностранным языком и с незнанием ни слова по предметной области.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
26.06.2012, 14:55     Битовые поля #8
Цитата Сообщение от taras atavin Посмотреть сообщение
По битовым полям у меня сейчас первый день и вопрос только о том, как располагаются данные в рабочей программе
Начнём с того, что вопрос у тебя был совсем другой. Если тебе впадлу читать и разбираться, что не всё ли тебе равно, что да как там располагается. Важно лишь то, что ты туда можешь записать и прочитать.

Цитата Сообщение от taras atavin Посмотреть сообщение
и точно ли в битах задана длина полей
Точно. Дополнительно у тебя поля знакового типа, а потому старший бит будет знаковый. Т.е. в 4-битном поле будут закодированы значения от -8 до 7.

Цитата Сообщение от taras atavin Посмотреть сообщение
При том, что ты мне без каких либо знаний в области битовых полей предлагаешь сразу разбирать английский. То есть одновременно мучаться с иностранным языком и с незнанием ни слова по предметной области.
По ссылке есть объяснение на русском языке. По ссылке на буржуйскую статью есть хорошо нарисованные картинки. К конце-концов возьми любой учебник и прочти. Приложи хотя бы минимум собственных усилий
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 17:31  [ТС]     Битовые поля #9
Цитата Сообщение от Evg Посмотреть сообщение
Если тебе впадлу читать и разбираться, что не всё ли тебе равно, что да как там располагается. Важно лишь то, что ты туда можешь записать и прочитать.
Тогда бы я завёл два обычных, а не битовых поля и тему бы не создавал. Но у меня массив в 512 таких структур (пришлось одним из битов индекса пустить бит расширенной клавы, не трогая при этом сам код кеи). В 2 раза увеличить массив и в 8 - это уже заметно. Кроме того, надо ведь сохранить и возможность обращения к полям по более привычным маскам. Это ведь только переменные маски длинных полей мне мало знакомы, а фиксированные маски флагов привычны. И я как раз хочу разобраться.

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
По ссылке есть объяснение на русском языке.
В англоязычном пэдээфе?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
26.06.2012, 17:39     Битовые поля #10
Цитата Сообщение от taras atavin Посмотреть сообщение
Тогда бы я завёл два обычных, а не битовых поля и тему бы не создавал. Но у меня массив в 512 таких структур (пришлось одним из битов индекса пустить бит расширенной клавы, не трогая при этом сам код кеи). В 2 раза увеличить массив и в 8 - это уже заметно. Кроме того, надо ведь сохранить и возможность обращения к полям по более привычным маскам. Это ведь только переменные маски длинных полей мне мало знакомы, а фиксированные маски флагов привычны. И я как раз хочу разобраться.
Битовое поле - это такое же поле, как и обычное, просто меньшего размера, а потому в него влезает меньший диапазон значений. На битовое поле нельзя брать адрес. Больше никаких отличий от обычного поля считай что нет

Цитата Сообщение от taras atavin Посмотреть сообщение
В англоязычном пэдээфе?
В конце поста N4 есть ссылка по которой ты уже сходил и отписался. И вроде бы даже всё понял
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2012, 18:09     Битовые поля
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 18:09  [ТС]     Битовые поля #11
Когда я отписался здесь, что нифига не понял и когда там, что уже понял?
Yandex
Объявления
26.06.2012, 18:09     Битовые поля
Ответ Создать тему
Опции темы

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