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;
}