Допустим, у меня есть указатель на 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 >>