Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+4 невидимых)

 eXeL@B —› Программирование —› Доступ к байту Dword в С++
Посл.ответ Сообщение

Ранг: 8.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 мая 2008 06:45
· Личное сообщение · #1

Всем привет. Собственно вопрос: как можно корректно организовать доступ к байтам дворда средствами C++?

В С, я делаю так

unsigned int hexen = 0xC0DE1337;
void *tovoid; cahr *tobyte;
tovoid = hexen; tobyte = tovoid;

И затем *(tobyte + N) получаю к определенному байту hexen, что по моему очень кучеряво.




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 07 мая 2008 06:56
· Личное сообщение · #2

*(BYTE*)dwVar

-----
invoke OpenFire





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 07 мая 2008 08:30 · Поправил: s0larian
· Личное сообщение · #3

детский сад... Почитай книжку по С.


void f(u_int32_t *p)
{
u_int8_t one = *p & 0xff,
two = (*p >> 8) & 0xff,
three = (*p >> 16) & 0xff,
four = *p >> 24;
}




Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 07 мая 2008 08:33
· Личное сообщение · #4

а вот еще по битам манипуляции

int IsBitSet(int Value, unsigned char TheBit)
{
return (Value & (1 << TheBit)) != 0;
}

int BitOn(int Value, unsigned char TheBit)
{
return Value | (1 << TheBit);
}

int BitOff(int Value, unsigned char TheBit)
{
return Value & ((1 << TheBit) ^ 0xFFFFFFFF);
}

int BitToggle(int Value, unsigned char TheBit)
{
return Value ^ (1 << TheBit);
}

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 18.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 07 мая 2008 08:34
· Личное сообщение · #5

union bytes4
{
struct
{
unsigned char b3;
unsigned char b2;
unsigned char b1;
unsigned char b0;
};
unsigned int fullp;
unsigned char b[4];
};
старший бат здесь b0 или b[3] если использовать как массив.



Ранг: 8.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 мая 2008 09:16 · Поправил: BadM00nz
· Личное сообщение · #6

Всем спасибо!
Пошел читать книжки.


 eXeL@B —› Программирование —› Доступ к байту Dword в С++
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати