1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 任意长度的二进制转换为十进制数

任意长度的二进制转换为十进制数

时间:2023-06-11 17:08:30

相关推荐

任意长度的二进制转换为十进制数

题意分析:2^35表示这个二进制数最长有35位... 所以不管用什么整数型都会爆,这时候只能用字符串读入,并将字符串上的每一位转换成int型。

具体方法:int x=a[i]-'0' //a[i]为字符串的第[i]位

输入一个样例出一个答案:

输入全部结束样例后出答案:

#include <bits/stdc++.h>using namespace std;char a[110][110]; //110个字符串,每个字符串长度110int main(){int t;cin>>t;for (int i=0;i<t;i++){scanf("%s",a[i]);}for(int i=0;i<t;i++){int x=0; //x是位权long long ans=0;int len=strlen(a[i]);for (int j=len-1;j>=0;j--){ans+=(a[i][j]-'0')*pow(2,x);//字符串a[i]的第j位转换成int型再乘pow(2,x)x++;}printf("%lld\n",ans);}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。