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

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

Войти
Регистрация
Восстановить пароль
 
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
#1

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

09.10.2010, 16:19. Просмотров 1032. Ответов 3
Метки нет (Все метки)

Здравствуйте.
Возникла необходимость работы с битовыми полями. Однако не могу понять, почему в нижеприведенном примере биты выводятся/записываются в обратном порядке.
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
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
struct TB
{
    unsigned r0:1;
    unsigned r1:1;
    unsigned r2:1;
    unsigned r3:1;
    unsigned r4:1;
    unsigned r5:1;
    unsigned r6:1;
    unsigned r7:1;
    unsigned r8:1;
    unsigned r9:1;
    unsigned r10:1;
    unsigned r11:1;
    unsigned r12:1;
    unsigned r13:1;
    unsigned r14:1;
    unsigned r15:1;
};
 
typedef TB *PTB;
PTB ptb1;
int main()
{
    setlocale (LC_ALL, "Rus");
    _int16 i = 0x2;
    ptb1 = (PTB)&i;
    
    std::cout << "_int16 i = " << i << std::endl;
    std::cout << ptb1->r0 << ptb1->r1 << ptb1->r2 << ptb1->r3 << ptb1->r4 << ptb1->r5 << ptb1->r6 << ptb1->r7 << ptb1->r8 << ptb1->r9 << ptb1->r10 << ptb1->r11 << ptb1->r12 << ptb1->r13 << ptb1->r14 << ptb1->r15;
    std::cout << std::endl;
    
    system ("Pause");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 16:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовые поля (C++):

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

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

Битовые поля - C++
struct TKeyFlags { int Old :1; int :6; int ...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2010, 16:26 #2
Может потому, что правый разряд - самый младший? И с него нумеруются биты. Т.е. r0 - самый младший (самый правый разряд), r1 - левее его на один разряд и т.д.
r15r14r13r12r11r10r9r8r7r6r5r4r3r2r1r0
0
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
09.10.2010, 16:35  [ТС] #3
silent_1991,вот меня и интересует, почему самый младший бит записывается в первый элемент структуры.
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.10.2010, 18:27 #4
Тебе уже ответили
Потому что такой порядок битов - поэтому так и записывается
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2010, 18:27
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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