ブルーブリッジカップ基礎練習16進数回転10進数(水題、進数変換)

4541 ワード

基礎練習16進数から10進数へ
時間制限:1.0 sメモリ制限:512.0 MB
問題の説明
キーボードから8桁以下の正の16進数文字列を入力し、正の10進数に変換して出力します.
注:16進数の10~15は、それぞれ大文字のアルファベットA、B、C、D、E、Fで表されます.
サンプル入力
FFFF
サンプル出力
65535
 
 1 #include 
 2 using namespace std;
 3 int main()
 4 {
 5     char hex_num[9];
 6     cin>>hex_num;
 7     int l;    //        
 8     long long dnum=0;
 9     for(l=0;hex_num[l]!='\0';l++);
10     for(int i=l-1;i>=0;i--){    //      
11         int num;
12         long long weights=1;    //   
13         if('0'<=hex_num[i] && hex_num[i]<='9')
14             num=hex_num[i]-'0';
15         else if('A'<=hex_num[i] && hex_num[i]<='F')
16             num=hex_num[i]-'A'+10;
17         for(int j=l-i;j>1;j--)
18             weights*=16;
19         dnum+=num*weights;
20     }
21     cout<endl;
22     return 0;
23 }

 
 Freecode : www.cnblogs.com/yym2013