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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

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

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

C++
1
2
3
4
5
6
struct TKeyFlags
{
  int                          Old    :1;
  int                                 :6;
  int                          Current:1;
};
Почему то sizeof=4. Почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовые поля (C++):

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

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

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

С++ битовые поля - C++
Написал код в котором используется характеристический вектор, все компилиться и вроде бы все замечательно, но мне нужен 20битный тип, а не...

Битовые поля - C++
Подскажите пожалуйста, как мне сохранить две цифры с помощью битовых полей?

Битовые поля - C++
Добрый вечер! Помогите, пожалуйста, найти ошибку в программе. Компиляцию проходит безошибочно, но данных не выдает при запуске. ...

10
Evg
Эксперт CАвтор FAQ
18041 / 6273 / 428
Регистрация: 30.03.2009
Сообщений: 17,257
Записей в блоге: 28
26.06.2012, 12:00 #2
Потому что по стандарту

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

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

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

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

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

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

Цитата Сообщение от taras atavin Посмотреть сообщение
В англоязычном пэдээфе?
В конце поста N4 есть ссылка по которой ты уже сходил и отписался. И вроде бы даже всё понял
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.06.2012, 18:09  [ТС] #11
Когда я отписался здесь, что нифига не понял и когда там, что уже понял?
0
26.06.2012, 18:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2012, 18:09
Привет! Вот еще темы с ответами:

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

битовые поля - C++
пользователь вводит с клавиатуры 2 беззнаковых длинных целых числа a, b. Вывести на консоль множества A, B, которые представляют битовые...

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

Битовые поля - C++
Программа,представляет с собой структуру ломбарда т.е:. База хранимых товаров и недвижимости: анкетные данные клиента, наименование товара,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru