代码:
import java.util.*;
public class DecToBin {//二进制转十进制
public static int dectobin(String str){
int cnt=0;
int sum=0;
str=new StringBuilder(str).reverse().toString();//反转字符串
for(int i=0;i<str.length();i++){
cnt++;
if (str.charAt(i)=='1'){
int mul=1;
for (int j=1;j<cnt;j++){
mul*=2;
}
sum+=mul;
}
else continue;
}
return sum;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
while(true) {
boolean flag=true;//用于输入有误后也能判定继续输入
for (int i=0;i<str.length();i++){
if ((str.charAt(i)!='1')&&(str.charAt(i)!='0')){
System.out.println("输入有误,请重输!");
flag=false;
break;
}
}
if(flag==true) {//注意别写成了=,要用==
System.out.println(dectobin(str));
str = sc.nextLine();
}
else str=sc.nextLine();
}
}
}
实现: