3416:【例72.1】 二进制转化为十进制
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 544 通过数: 318
【题目描述】
把一个二进制数转化为十进制数。
【输入】
第一行一个正整数n(1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
【输出】
输出一个整数,表示对应的十进制数。
【输入样例】
5
10101
【输出样例】
21
#include<bits/stdc++.h>
using namespace std;
//字符串解题方式
int main(){
long long n,ans=0;
string str;
cin>>n>>str;
for(int i=n-1,j=0;i>=0;i--,j++){
ans += (str[j]-'0')*pow(2,i);
}
cout<<ans;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,x;
string s;
//借用bitset实现将"01" 字符串变成内存中无符号的整数补码
int main(){
cin>>n>>s;
bitset<32>b(s);
x=b.to_ulong();
cout<<x;
return 0;
}
标签:二进制,3416,int,72.1,str,十进制
From: https://www.cnblogs.com/Andre/p/18064055