Скорость получения байта по указателю
От: WinterMute Россия http://yarrr.ru
Дата: 06.09.04 16:49
Оценка:
Допустим, у меня есть указатель на 32-х битное целое, нужно получить в нём второй байт, какой код будет быстрее:

int* pInt = ....;

BYTE second = ((byte*)pInt)[1];
или 
BYTE second = (*pInt & 0x00ff0000) >> 16;

// И что быстрее, если мне нужно разложить по байтам всё целое число?

BYTE first  = ((byte*)pInt)[0];
BYTE second = ((byte*)pInt)[1];
BYTE third  = ((byte*)pInt)[2];
BYTE fourth = ((byte*)pInt)[3];

или 

BYTE first  = (*pInt & 0xff000000) >> 24;
BYTE second = (*pInt & 0x00ff0000) >> 16;
BYTE third  = (*pInt & 0x0000ff00) >> 8;
BYTE fourth = (*pInt & 0x000000ff);
... << RSDN@Home 1.1.4 @@subversion >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.