Разбираю пример из лекции по Java.
Есть пример: "Кодируем codepoint, который помещается в однобайтный UTF8"
Есть пример кода:
import java.nio.charset.StandardCharsets;
public class App {
public static void main(String[] args) {
int codePoint = 0b110011;
String cp = leftZeroPadding(Integer.toBinaryString(codePoint), 8);
System.out.println("codePoint: " + cp);
String str = new String(new int[] {codePoint}, 0, 1);
byte[] utf8bytes = str.getBytes(StandardCharsets.UTF_8);
System.out.println("utf8bytes: " + leftZeroPadding(Integer.toBinaryString(0xFF & utf8bytes[0]), 8));
}
public static String leftZeroPadding(String str, int length) {
while (str.length() < length) {
str = "0" + str;
}
return str;
}
}
Все понятно, только вот не пойму для чего в следующей строке, в методе toBinaryString(), прописано 0xFF? Для чего это?
System.out.println("utf8bytes: " + leftZeroPadding(Integer.toBinaryString(0xFF & utf8bytes[0]), 8));