Задачу решил. Но сравнив своё решение с валидатором, я увидел немного не понятное для меня решение (метод print), частью которого является строка, аналогичная следующей:
byte b = 55;
System.out.println(Integer.toBinaryString(256 + (int) b));
*значение b произвольное 1. Почему 256 + ...? 2. Для чего преобразование b к int? Спасибо.
/**
 1. Даны IP-адрес и маска подсети, необходимо вычислить адрес сети - реализуй метод getNetAddress.
 Используйте операцию поразрядной конъюнкции (логическое И).

 Пример:
 IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)
 Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0)
 Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)

 2. Реализовать метод print, который выведет в консоль данные в двоичном коде. Для IP-адреса(192.168.1.2)
 должна быть выведена строка "11000000 10101000 00000001 00000010"
 3. Метод main не участвует в тестировании

 Требования:
 1. Метод getNetAddress должен вычислять и возвращать адрес сети согласно переданным
 параметрам(IP-адрес и маска подсети).
 2. Метод getNetAddress должен быть статическим и публичным.
 3. Метод print должен быть статическим и публичным.
 4. Метод print должен преобразовывать переданный ему IP адрес в двоичный код и выводить на экран(как в условии).
 */
public class Solution {
    public static void main(String[] args) {
        byte[] ip = new byte[]{(byte) 192, (byte) 168, 1, 2};
        byte[] mask = new byte[]{(byte) 255, (byte) 255, (byte) 254, 0};
        byte[] netAddress = getNetAddress(ip, mask);
        print(ip);          //11000000 10101000 00000001 00000010
        print(mask);        //11111111 11111111 11111110 00000000
        print(netAddress);  //11000000 10101000 00000000 00000000
    }