Q: Перевода из двоичной системы счисления в десятичную и обратно с нуля Как написать метод
 public static int toDecimal( String base2)

который преобразует base2 - бинарик из String в int, и переведет в десятеричную систему счисления.
И другой метод
 public static int toBinar( int base10)

который переведет любое десятичное число base10 в бинарик.

A: Задание для метода toBinar (код ниже) поставлено не совсем корректно. Дело в том, что отрицательные значения хранятся иначе чем положительные. Они инвертированы и хранят в старшем бите знак. Например число -10 будет выглядеть как "11111111111111111111111111110110". Разумеется в int такое запихнуть не получится. Следовательно метод нельзя использовать для отрицательных чисел. Но даже для положительных чисел метод будет очень ограничен. Максимальное число которое можно поместить в int - это 2147483647. 10 знаков. Значит максимальное число которое будет представлено единицами и нулями хранимыми в int - это 1111111111 = 1023 в десятичном формате. Но если изменить условие чтобы метод возвращал String, то достаточно убрать последний парсинг и возвращать строку как есть, тогда можно будет передавать и отрицательные числа и положительные любой длины. Также стоит обратить внимание на определение значения младшего бита. В подобных задачах часто встречается деление. Но во-первых - деление это дорогостоящая операция, а во-вторых этот метод дает не верные результаты для отрицательных чисел. Поэтому здесь используется побитовый сдвиг и добавление результата побитового "И".
public static int toBinar(int base10) {            
    if (base10==0) return 0;
    StringBuilder result = new StringBuilder();
    while (base10 != 0) {
        result.append(base10 & 1);
        base10 >>>= 1;
    }
    return Integer.parseInt(result.reverse().toString());
}

В методе toDecimal комментарии излишни, он достаточно прост. Перебираются символы справа налево на каждом шаге к результату прибавляя текущее значение разряда в десятичном представлении, если символ это '1'
    public static int toDecimal(String base2) {
        char[] chars = base2.toCharArray();
        int result = 0;
        int mult = 1;
        for (int i = base2.length()-1; i >= 0; i--) {
            if (chars[i]=='1') {
                result += mult;
            }
            mult*=2;
        }
        return result;
    }

