4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

Битовые поля

26.06.2012, 11:53. Показов 1597. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
struct TKeyFlags
{
  int                          Old    :1;
  int                                 :6;
  int                          Current:1;
};
Почему то sizeof=4. Почему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2012, 11:53
Ответы с готовыми решениями:

Битовые операции, битовые поля.
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций....

Битовые поля. Поля без типа и имени
Вчера сделал очень интересную и болезненную ошибку (с точки зрения времени, так как искал я ее...

Битовые поля
Народ, напишите программу для включения 3-го разряда однобайтового числа и переключения 7-го. Никак...

Битовые поля
В приложении 1 есть пример использования битовых полей. В выделенной строке структуре присваивается...

10
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
26.06.2012, 12:00 2
Потому что по стандарту

Добавлено через 2 минуты
http://www.uclibc.org/docs/psABI-i386.pdf
раздел "Bit fields" на странице 32
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.06.2012, 12:06  [ТС] 3
Нифига не понял.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
26.06.2012, 12:14 4
Это документ по программным соглашениям. И там написаны правила упаковки битовых полей в структуру.

Добавлено через 5 минут
Чтение битового поля
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.06.2012, 12:42  [ТС] 5
Цитата Сообщение от Evg Посмотреть сообщение
Это документ по программным соглашениям.
Ну это то как раз единственно, что понятно.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
26.06.2012, 12:48 6
Дальше идёт ссылка. Если тебе и после этого непонятно, то завязывай лучше с программированием. Или забивай на такие вопросы и принимай их как данность сверху
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.06.2012, 14:51  [ТС] 7
Цитата Сообщение от Evg Посмотреть сообщение
Дальше идёт ссылка.
Так я читал то, что по ссылке. Точнее смотрел, чтение не осилил.

Добавлено через 3 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Если тебе и после этого непонятно, то завязывай лучше с программированием.
Ты в первый день умел? По битовым полям у меня сейчас первый день и вопрос только о том, как располагаются данные в рабочей программе и точно ли в битах задана длина полей. При том, что ты мне без каких либо знаний в области битовых полей предлагаешь сразу разбирать английский. То есть одновременно мучаться с иностранным языком и с незнанием ни слова по предметной области.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
26.06.2012, 14:55 8
Цитата Сообщение от taras atavin Посмотреть сообщение
По битовым полям у меня сейчас первый день и вопрос только о том, как располагаются данные в рабочей программе
Начнём с того, что вопрос у тебя был совсем другой. Если тебе впадлу читать и разбираться, что не всё ли тебе равно, что да как там располагается. Важно лишь то, что ты туда можешь записать и прочитать.

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

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

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

Цитата Сообщение от taras atavin Посмотреть сообщение
В англоязычном пэдээфе?
В конце поста N4 есть ссылка по которой ты уже сходил и отписался. И вроде бы даже всё понял
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.06.2012, 18:09  [ТС] 11
Когда я отписался здесь, что нифига не понял и когда там, что уже понял?
0
26.06.2012, 18:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2012, 18:09
Помогаю со студенческими работами здесь

Битовые поля
Подскажмте пожалуйста новичку, что такое битовые поля.Уже перечитываю раз 11ый, а никак понять не...

Битовые поля
Здравствуйте, расскажите мне пожалуйста как происходят операции с битами. Мне необходимо получить 1...

Битовые поля
Ребят, подкиньте, пожалуйста, инфу по битовым полям или ссылочку на ресурс. Может у кого-нить...

Битовые поля
Классы для хранения байта (в виде битовых полей)1. Создать такой метод, чтобы ноль перемещался от...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru