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