题目描述
将一个二进制数,转换为对应的十进制数。
输入
输入一个只含有’0’和’1’的字符串,以回车结束,表示一个二进制数。该二进制数无符号位,长度不超过31。
输出
输出一个整数,为该二进制数对应的十进制数。
样例输入
100000000001
样例输出
2049
先调到java再提交
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String n = in.next();
int sum = 0;
char ch;
for(int i = 0;i < n.length();i++,sum = sum * 2 + (ch - '0'))
ch = n.charAt(i);
System.out.print(sum);
}
}
把二(n)进制数转换成十进制(移步秦九韶算法_百度百科 (baidu.com))
本质上是从高位向低位依次去括号
不过我们有更优雅的方法
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String n = in.next();
int sum = Integer.parseInt(n,2);
System.out.print(sum);
}
}
函数Integer.parseInt()将指定进制的字符串转换为十进制整数返回