BASIC-11 十六进制转十进制

  • 模拟或者使用hex
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> P;
const int N=9;
const double PI=acos(-1);
#define line '\n'
#define gt getchar()
#define mid ((L+R)>>1)
int read(){int x=0,op=1;char c=gt;while(!isdigit(c)){if(c=='-')op=-1;c=gt;}while(isdigit(c))x=x*10+c-48,c=gt;return x*op;}
char s[N];
int a[8];
int main()
{
	cin>>s;
	int len=strlen(s);
	a[0]=1;for(int i=1;i<len;++i)a[i]=a[i-1]<<4;
	LL ans=0;
	for(int i=0;i<len;++i)if(s[i]<='9')ans+=1LL*(s[i]-'0')*a[len-i-1];
	else ans+=1LL*(s[i]-'A'+10)*a[len-i-1];
	cout<<ans<<line;
	/*
	LL x;
	cin>>hex>>x;
	cout<<x<<line
	*/
	return 0;
}
posted @ 2020-04-15 20:15  啥也不是*  阅读(150)  评论(0)    收藏  举报