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

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

Восстановить пароль Регистрация
 
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
09.10.2010, 16:19     Битовые поля #1
Здравствуйте.
Возникла необходимость работы с битовыми полями. Однако не могу понять, почему в нижеприведенном примере биты выводятся/записываются в обратном порядке.
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 16:19     Битовые поля
Посмотрите здесь:

C++ битовые поля!!
C++ Создать битовое поле для хранения времени
Битовые поля C++
C++ Битовые поля
Битовые операции, битовые поля. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.10.2010, 16:26     Битовые поля #2
Может потому, что правый разряд - самый младший? И с него нумеруются биты. Т.е. r0 - самый младший (самый правый разряд), r1 - левее его на один разряд и т.д.
r15r14r13r12r11r10r9r8r7r6r5r4r3r2r1r0
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
09.10.2010, 16:35  [ТС]     Битовые поля #3
silent_1991,вот меня и интересует, почему самый младший бит записывается в первый элемент структуры.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
09.10.2010, 18:27     Битовые поля #4
Тебе уже ответили
Потому что такой порядок битов - поэтому так и записывается
Yandex
Объявления
09.10.2010, 18:27     Битовые поля
Ответ Создать тему
Опции темы

Текущее время: 08:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru