Как понять момент в преобразовании числа в бинарную строку? Разбираю пример из лекции по 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));
В данном случае, операция 0xFF & utf8bytes[0] используется для получения только младших 8 бит (одного байта) из значения utf8bytes[0]. Это делается путем применения операции побитового И (&) с числом 0xFF, которое представляет собой байт, содержащий все биты, установленные в 1 в младших 8 позициях.
Таким образом, результат этой операции будет байтом с младшими 8 битами из utf8bytes[0]. Далее этот результат преобразуется в строку с помощью Integer.toBinaryString() и затем происходит выравнивание строки слева нулями до длины 8 с помощью метода leftZeroPadding() перед выводом на экран.
В данном случае, операция 0xFF & utf8bytes[0] используется для получения только младших 8 бит (одного байта) из значения utf8bytes[0]. Это делается путем применения операции побитового И (&) с числом 0xFF, которое представляет собой байт, содержащий все биты, установленные в 1 в младших 8 позициях.
Таким образом, результат этой операции будет байтом с младшими 8 битами из utf8bytes[0]. Далее этот результат преобразуется в строку с помощью Integer.toBinaryString() и затем происходит выравнивание строки слева нулями до длины 8 с помощью метода leftZeroPadding() перед выводом на экран.