Как понять, как работает этот метод в ShowBits? Читаю "Java 8 руководство для начинающих" Шилдта, дочитал до 199 страницы и тут произошел затык. Автор описывает класс ShowBits, который должен показывать двоичное представление любого числа. Внутри этого класса есть метод show, но я совсем не понял принцип его работы. Сам автор тоже ничего не объясняет, после кода программы идет следующий раздел главы. Вот код классаclass ShowBits { int numbits;
ShowBits(int n) { numbits = n; }
void show(long val) { long mask = 1;
// Сдвинуть значения 1 влево на нужную позицию mask >>= 1) { if((val & mask) != 0) System.out.print("1"); else System.out.print("0"); spacer++; if((spacer % 8) == 0) { System.out.print(" "); spacer = 0; } } System.out.println(); } } С сохранением комментариев автора. Помогите понять это, пожалуйста.
Данный метод show в классе ShowBits используется для вывода двоичного представления числа val на экран. Давайте разберем его по шагам:
Создается переменная mask, которая инициализируется значением 1.Выполняется сдвиг влево на numbits-1 позицию, чтобы получить маску для определения битов в числе val.Создается переменная spacer для отслеживания количества выведенных битов.Запускается цикл, в котором mask сдвигается вправо на 1 бит каждую итерацию.Внутри цикла проверяется бит в числе val по маске mask, используя побитовую операцию &. Если результат не равен 0, то выводится "1", иначе - "0".После вывода каждого бита увеличивается значение spacer. Если spacer становится равным 8, то выводится пробел, чтобы группировать биты по 8.По завершении цикла выводится символ новой строки.
Таким образом, данный метод побитово обрабатывает число val и выводит его двоичное представление на экран. Если вам нужно понять конкретный пример работы этого метода, можно создать объект класса ShowBits, вызвать метод show с каким-либо числом в качестве аргумента и посмотреть вывод на экран.
Данный метод show в классе ShowBits используется для вывода двоичного представления числа val на экран. Давайте разберем его по шагам:
Создается переменная mask, которая инициализируется значением 1.Выполняется сдвиг влево на numbits-1 позицию, чтобы получить маску для определения битов в числе val.Создается переменная spacer для отслеживания количества выведенных битов.Запускается цикл, в котором mask сдвигается вправо на 1 бит каждую итерацию.Внутри цикла проверяется бит в числе val по маске mask, используя побитовую операцию &. Если результат не равен 0, то выводится "1", иначе - "0".После вывода каждого бита увеличивается значение spacer. Если spacer становится равным 8, то выводится пробел, чтобы группировать биты по 8.По завершении цикла выводится символ новой строки.Таким образом, данный метод побитово обрабатывает число val и выводит его двоичное представление на экран. Если вам нужно понять конкретный пример работы этого метода, можно создать объект класса ShowBits, вызвать метод show с каким-либо числом в качестве аргумента и посмотреть вывод на экран.