How to convert 4 bytes into a long?

Something like this should so the job.

long adc_value;
byte d[4];

/* Put the low byte in d[0].
 */
 d[0]= shiftIn()  // THE LOW BYTE
   :
 d[3] = shiftIn()  // THE HIGH BYTE

adc_value = *((long *)d);