Well, for starters that just doesn't make an iota of sense.
For seconds, your code's not doing what your claim or think it is!
Consider the following code & it's output:
#include <windows.h>
#include <stdio.h>
BYTE Rawmem[5] = {0x11, 0x22, 0x33, 0x44, 0x55};
UINT32 unsignedLong32;
int main()
{
unsignedLong32 = Rawmem[0] << 32 | Rawmem[1] << 24 | Rawmem[2] << 16 | Rawmem[3] <<8 | Rawmem[4];
printf("0x%X\n", unsignedLong32);
}
Output:
0x22334455
What are you actually trying to do? What's the problem you're trying to solve?
There's undoubtedly a way to do it - but this certainly isn't it!