描述
请编程实现二进制数到十进制数的转换。
输入描述
一个二进制数。位数不超过25位,保证转换成的十进制数在int类型的范围内。
输出描述
二进制数对应的十进制数。
样例输入 1
1001
样例输出 1
9
#include <iostream>
#include<cstring>
typedef long long Int;
constexpr Int maxn=25;
char A[maxn+1];
Int B[maxn];
int main() {
std::cin>>A;
Int n=std::strlen(A);//这里要求一下字符串长度,不求的话后面没法for
for(Int i=0;A[i];i++)B[i]=A[i]-'0';
Int s=0,mi=1;
for(Int i=n-1;i>=0;i--){//这里遍历时应该用n-1,用0从后往前找第一个1有可能是1010这类最后一个不是1最后的树0就被忽略了。
if(B[i]){
s+=mi;
}
mi*=2;
}
std::cout<<s;
}