3416:【例72.1】 二進位制轉化為十進位制

Pudding10335發表於2024-03-10

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

相關文章