Читаю "Java 8 руководство для начинающих" Шилдта, дочитал до 199 страницы и тут произошел затык. Автор описывает класс ShowBits, который должен показывать двоичное представление любого числа. Внутри этого класса есть метод show, но я совсем не понял принцип его работы. Сам автор тоже ничего не объясняет, после кода программы идет следующий раздел главы.
Вот код класса
class ShowBits {
int numbits;
ShowBits(int n) {
numbits = n;
}
void show(long val) {
long mask = 1;
// Сдвинуть значения 1 влево на нужную позицию
mask <<= numbits-1;
int spacer = 0;
for(; mask != 0; 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();
}
}
С сохранением комментариев автора.
Помогите понять это, пожалуйста.