Как понять момент в преобразовании числа в бинарную строку? Разбираю пример из лекции по 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()

21 Авг 2019 в 06:33
235 +1
0
Ответы
1

В данном случае, операция 0xFF & utf8bytes[0] используется для получения только младших 8 бит (одного байта) из значения utf8bytes[0]. Это делается путем применения операции побитового И (&) с числом 0xFF, которое представляет собой байт, содержащий все биты, установленные в 1 в младших 8 позициях.

Таким образом, результат этой операции будет байтом с младшими 8 битами из utf8bytes[0]. Далее этот результат преобразуется в строку с помощью Integer.toBinaryString() и затем происходит выравнивание строки слева нулями до длины 8 с помощью метода leftZeroPadding() перед выводом на экран.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир