Grazie davvero per le dritte che mi dai!

A dire il vero scrivendo:
int IP;

IP=(byte1<<24 | byte2<<16 | byte3<<8 | byte4) & 0xFFFFF800;

da terminale visualizzo il valore che ottengo facendo:

IP=256*256*256*byte1+256*256*byte2+256*byte3+byte4

cioè ottengo il valore che otterrei senza maschera.

Com'è possibile?