3416:【例72.1】 二进制转化为十进制

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;
}
posted @ 2024-03-10 13:33  Pudding10335  阅读(14)  评论(0编辑  收藏  举报