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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
#1

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

26.04.2012, 15:25. Просмотров 1237. Ответов 6
Метки нет (Все метки)

Ребят, подкиньте, пожалуйста, инфу по битовым полям или ссылочку на ресурс. Может у кого-нить лекции в электронном варианте есть или практикумы, или кто-то знает, где можно почитать. Буду благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 15:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовые поля (C++):

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

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

битовые поля!! - C++
добрый вечер! имеется класс представления битовых полей: #ifndef HTBITFIELDS #define HTBITFIELDS #include <iostream> using...

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

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

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

6
alkagolik
Заблокирован
26.04.2012, 17:56 #2
K&R глава 6
0
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
27.04.2012, 23:39  [ТС] #3
Не могу разобраться в полях. Пытаюсь создать структуру полей битов для хранения даты какого-нибудь события. Две функции: 1-я устанавливает дату, 2 - выводит. Ошибка появилась уже на первой функции.
Такой код
Код C++

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
27
#include <iostream>
 
using namespace std;
 
struct Date
{
    unsigned y: 8;
    unsigned m: 4;
    unsigned d: 5;
};
 
void SetDate(Date *); // устанавливает дату
void GetDate(const Date *); // выводит дату
 
int main()
{
    Date date;
    Date *pstruct = &date;
    SetDate(pstruct);
}
 
void SetDate(Date *p)
{
    cin >> p->y;
    cin >> p->m;
    cin >> p->d;
}
C++
1
2
3
4
5
In function 'void SetDate(Date*)':|
|24|error: cannot bind bitfield 'p->Date::y' to 'unsigned int&'|
|25|error: cannot bind bitfield 'p->Date::m' to 'unsigned int&'|
|26|error: cannot bind bitfield 'p->Date::d' to 'unsigned int&'|
||=== Build finished: 3 errors, 0 warnings ===|
Ничего не пойму, что от меня хотят и чего они там не могут связать
0
alkagolik
Заблокирован
27.04.2012, 23:48 #4
denys_l, а что надо сделать? в смысле текст задания, и вообще-то у тебя код на с++, это в другой ветке.
0
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
27.04.2012, 23:51  [ТС] #5
Цитата Сообщение от alkagolik Посмотреть сообщение
denys_l, а что надо сделать? в смысле текст задания, и вообще-то у тебя код на с++, это в другой ветке.
Да ну, собственно, нет никакого задания. Я сам такое придумал, чтоб разобраться. Хочу создать поле битов и там хранить год, месяц и день какого-то события. А потом в функции изменять это событие и выводить это событие.
Я и в ветке С++ создал тоже такую тему. Я не знаю, куда эти поля относятся больше, к Си или плюсам
0
alkagolik
Заблокирован
28.04.2012, 00:23 #6
У этих структур совсем другие задачи. Открой "Полный справочник по С++" Г. Шилдта на странице 163 почитай.
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
28.04.2012, 14:38 #7
Цитата Сообщение от denys_l Посмотреть сообщение
Ничего не пойму, что от меня хотят и чего они там не могут связать
Проблема в том, что cin как бы потребляет указатель на переменную, а указатель на битовое поле взять нельзя. Поэтому в данном случае можно работать только через промежуточную переменную:

C++
1
2
3
4
5
6
7
8
9
10
11
void SetDate(Date *p)
{
    unsigned tmp;
 
    cin >> tmp;
    p->y = tmp;
    cin >> tmp;
    p->m = tmp;
    cin >> tmp;
    p->d = tmp;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2012, 14:38
Привет! Вот еще темы с ответами:

Битовые поля - C++
Доброго времени суток. Читаю книгу &quot;Освой самостоятельно С++ за 21 день&quot;, наткнулся на битовые поля. Читаю про их объявление: &quot;Они всегда...

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
28.04.2012, 14:38
Ответ Создать тему
Опции темы

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