Para q serve (& 0xFF)

Estava lendo um tutorial aqui no GUJ e encontrei um codigo assim:

for (int i = 0; i < b.length; i++) { 27 int j = ((int) b[i]) & 0xFF; 28 buf.append(hexDigits.charAt(j / 16)); 29 buf.append(hexDigits.charAt(j % 16)); 30 }

o significa esse & 0xFF? para q serve?

Valeu.

Esse é um “E” (AND) binário. No caso, ele serve para fazer um E com o valor 0xFF, que é 255. Ou seja, somente os bits do valor “b[i]” até 255 serão mantidos. Dê uma olhada na internet para conhecer mais sobre E e OU binários.

O resultado é que você garante que o valor resultante do b[i] & 0xFF será um valor inteiro de 0 a 255.

Abraços,
Rodrigo