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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通