O que value & 0xff faz em Java?

Eu tenho o seguinte código Java: byte value = 0xfe; // corresponds to -2 (signed) and 254 (unsigned) int result = value & 0xff; O resultado é 254 quando impresso, mas não tenho ideia de como esse código funciona. Se o &operador for simplesmente bit a bit, por que ele não resulta em um...