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

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

Войти
Регистрация
Восстановить пароль
 
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
#1

Поля - C++

11.05.2012, 17:14. Просмотров 290. Ответов 2
Метки нет (Все метки)

Здравствуйте.
C++
1
2
3
4
5
6
7
8
9
10
struct sreg {
              unsigned enable : 1;
              unsigned page : 3;
              unsigned : 1;        // не используется
              unsigned mode : 2;
              unsigned : 4;        // не используется
              unsigned access : 1;
              unsigned length : 1;
              unsigned non_resident : 1;
        };
Не могли бы вы объяснить, что это? Код взят из книги Страуструпа.
Что такое структура и зачем она нужна я знаю, но что означает "поля"? И почему у одних "полей" названия есть у других нет? Причем здесь unsigned? И как это использовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 17:14     Поля
Посмотрите здесь:

Копировать значение поля m_moo в значение поля m_moo класса foo - C++
А что означает запись? Foo1(Foo1 const& foo):m_moo(foo.moo) то что это к.копирования понятно.Не понятно,зачем список инициализации.... ...

Верхнюю фигуру надо нарисовать от верхнего поля, а нижнюю от конца поля - Turbo Pascal
Задание Что касается задания,значит верхнюю фигуру надо нарисовать от верхнего поля, а нижнюю от конца поля. Потом надо их сдвигать...

Как произвести выборку одного поля по условию другого поля в коллекции? - LINQ
Всем привет! Как произвести выборку одного поля по условию другого поля в коллекции? Т.е. допустим есть класс MyClass: public class...

Заполнение базы данных с определенного номера поля ключевого поля - C#
Добрый день, написан код для заполнения таблицы на c#, но при запуске выдает ошибку, что не может создать ключевое поле, которое уже...

Моментальное изменение содержимого поля, после изменения другого поля - JavaScript
Всем привет. Есть страничка на JSF(Java), где находится несколько полей, в которых указывается время в миллисекундах. Нужно рядом с каждым...

Передача поля в контроллер из вьюшки без пападания поля во вьюшку - C# MVC
Здравствуйте. Имеется контроллер: public class TestController { public long personID; ...

Построить k различных непрерывных разрезов поля на два клеточных поля равной площади - Visual C++
мне дано такое задание: "задано прямоугольное клеточное поле и число k. Построить k различных непрерывных разрезов этого поля на два...

Как сделать так чтобы ошибка конкретного поля отображалась снизу этого же поля? - JavaScript
Помогите, пожалуйста! Как сделать так чтобы ошибка конкретного поля отображалась снизу этого же поля? Сначала надо проверять этого поля на...

Сумма всех чисел поля, тип поля float. - PHP БД
Здравствуйте, я недавно начал изучать php и сейчас столкнулся с такой вот проблемой. В общем есть таблица в БД (называется она...

Определить энергию поля конденсатора и плотность энергии поля - Электричество и магнетизм
Плоский конденсатор с площадью пластин S = 200 см2 каждая, заряжен до разности потенциалов U =2 кВ. Расстояние между пластинами d=2 см....

Заданы два поля шахматной доски N1 и N2. Проверить, может ли ферзь за один ход перейти с поля N1 на поле N2 - Lisp
Задание из раздела "Структуры". Решить с помощью Defstract... Заданы два поля шахматной доски N1 и N2. Проверить, может ли ферзь за один...

Вывести шахматную доску, пометив крестиками поля, которые «бьет» ферзь (с поля с координатами Ver/Hor) - Delphi
Поля шахматной доски характеризуются записью Type Pole=record Ver : (a,b,c,d,e,f,g,h); {вертикальные координаты} Hor:1..8;...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.05.2012, 17:37     Поля #2
гугли "битовые поля".

как пример использования:

множество флагов (если прям ну ваще жалко памяти по 1 байту на каждый флаг),а так отдаем по 1 биту.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct data_t {
 
    unsigned flag1: 1;
    unsigned flag2: 1;
    unsigned flag3: 1;
 
    // ...
};
 
data_t d;
 
// ...
 
d.flag1 = 1;
d.flag2 = 0;
как другой пример, иногда удобно брать отдельные биты и пары битов из переменной.
в данном случае рассмотрим содержание в 1 объединении информации о старшем и младшем байте числа short (у меня оно 2-х байтное).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
union _SHORT {
 
    short var;
 
    struct {
 
        unsigned low: 8;
        unsigned high: 8;
 
    };
 
};
 
int main(int argc, char *argv[]) {
 
    _SHORT s;
    s.var = 0xFFFA;
 
    std::cout << std::hex << s.high << ' ' << s.low;
 
}
выведется "ff fa"
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
11.05.2012, 17:42  [ТС]     Поля #3
OstapBender, Спасибо большое!
Ответ Создать тему
Опции темы

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