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 @   ppppppro  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示