题解
【入门】8进制、16进制转10进制
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main(){ int n,x=0,t=1; string s; //自定义s数组 cin>>n; for(int i=1;i<=n;i++){ cin>>s; if(s[0]=='0' && s[1]=='x'){ //十六进制的 for(int i=s.size()-1;i>=2;i--){//前两位不是 if(s[i]>='0'&&s[i]<='9'){ x+=(s[i]-'0')*t;//数字部分 } else{ x+=(s[i]-'a'+10)*t;//字母部分 } t=t*16; } cout<<x<<endl; } else if(s[0]=='0'){ //八进制的 for(int i=s.size()-1;i>=1;i--){ x+=(s[i]-'0')*t; t=t*8; } cout<<x<<endl; } t=1; x=0; } }
- 1