package exp_06.P5;
public class BD{
String toto(String ba) throws NumberException {
int sum=0;
for(int i=ba.length()-1, j=0;i>=0;i--,j++)
{
if(ba.charAt(i)=='0'||ba.charAt(i)=='1')
sum += (int)(ba.charAt(i)-48)*Math.pow(2, j);
else {
throw new NumberException(ba);
}
}
String s = Integer.toString(sum);
return s;
}
}
package exp_06.P5;
public class NumberException extends Exception {
String num;
public NumberException(String number) {
System.out.printf("%s不是二进制数",number);
}
}
package exp_06.P5;
import java.util.*;
//throws NumberException
public class BtoD {
public static void main(String[] args) throws NumberException{
Scanner reader = new Scanner(System.in);
System.out.printf("请输入二进制数");
String B = reader.nextLine();
BD bd = new BD();
String s= bd.toto(B);
System.out.printf("转换为十进制数为%s",s);
}
}