问题描述
编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。
输入格式:输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不超过32。
输出格式:输出一个整数。
输入输出样例
样例输入
1101
样例输出
13
资源限制
时间限制:1.0s 内存限制:512.0MB
思路:
使用字符串接收用户输入的二进制数,然后转化为字符数组,按照权位分别进行累加即可。
也可以参考我之前写的“十六进制转化为十进制”,思路都是类似的。(点击查看)
代码块:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.next();
f(str);
}
static void f(String s){
char c[] = s.toCharArray();
int sum = 0;
int two = 1;
for(int i = 0; i < c.length; i++){
for(int j = c.length - i-1; j > 0; j--){
two *= 2;
}
int t = (c[i]-48)*two;
sum += t;
two = 1;
}
System.out.println(sum);
}
}
评测结果: