¿Qué hace AND 0xFF?

En el siguiente código:

short = ((byte2 << 8) | (byte1 & 0xFF))

Cual es el proposito de&0xFF? Porque otras veces lo veo escrito como:

short = ((byte2 << 8) | byte1)

¿Y eso parece funcionar bien también?

Respuestas a la pregunta(7)

Su respuesta a la pregunta