Показать сообщение отдельно

  #12  
Старый 15.05.2009, 12:54
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
С нами: 9302336

Репутация: 10
По умолчанию

Цитата:
Сообщение от slesh  
а вообще добирайся до битов через сишный возможности ти
Код:
typedef struct _KEY 
{
 char b1:1;
 char b2:2;
 char b3:3;
 char b4:4;
 char b5:5;
 char b6:6;
 char b7:7;
 char b8:8;
} TKEY,*PKEY;


int main(int argc, char* argv[])
{
 PKEY keybit;
 char data[8];
 data[0]=127;
 keybit=(PKEY)&data[0];
 keybit->b1=1; // вот так вот ты можешь добраться до битов
 return 0;
}


Код:
typedef struct _KEY
{
 char b1:1;
 char b2:2;
 char b3:3;
 char b4:4;
 char b5:5;
 char b6:6;
 char b7:7;
 char b8:8;
} TKEY,*PKEY;

Выходит что b1 имеет 1 бит,b2 2 биты, b3 3 биты ..... b8 8 битов а всего 36 битов а должно быть всего лишь 8 битов, т.е. :
Код:
typedef struct _KEY {
     char b1 : 1;
     char b2 : 1;
     char b3 : 1;
     char b4 : 1;
     char b5 : 1;
     char b6 : 1;
     char b7 : 1;
     char b8 : 1;
} TKEY,*PKEY;

Последний раз редактировалось xismyname; 15.05.2009 в 12:58..
 
Ответить с цитированием