藍橋杯練習題---十六進制轉十進制

問題描述

  從鍵盤輸入一個不超過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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章