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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章