Convert.ToInt32(string, base)
не делает конвертацию базы в вашу базу. Предполагается, что строка содержит действительное число в указанной базе и преобразуется в базу 10.
Итак, вы получаете ошибку, потому что "8" не является действительной цифрой в базе 2.
String str = "1111";
String Ans = Convert.ToInt32(str, 2).ToString();
Покажет 15
(1111 база 2 = 15 база 10)
String str = "f000";
String Ans = Convert.ToInt32(str, 16).ToString();
Покажет 61440
.