問題描述
從鍵盤輸入一個不超過8位的正的十六進制數字符串,將它轉換爲正的十進制數後輸出。
注:十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
樣例輸入
FFFF
樣例輸出
65535
這個需要注意轉換後的十進制數的大小,這裏需要用 long long型。
AC代碼:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
char s[10];
scanf("%s",s);
long long sum=0;
int l= strlen(s);
for(int i=0;i<l;i++){
if(s[i]<='F'&&s[i]>='A')
sum+=(s[i]-'A'+10)*pow(16.0,(l-i-1));
else
sum+=(s[i]-'0')*pow(16.0,(l-i-1));
}
printf("%lld\n",sum);
return 0;
}
進制轉換隻要知道各進制之間的轉換方法就可以了
具體方法可以參考:https://blog.csdn.net/Krismile_/article/details/86817235