蓝桥杯2014年以前JAVA历年真题及答案整理——十六进制转十进制

问题描述

从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

java实现:

import java.io.*;
public class Main {
public static void main (String args[])throws Exception{
    BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
    String s=buf.readLine();
    char c[]=s.toCharArray();
   int n=c.length;
   long sum=0;
   for(int i=0;i<n;i++){
       
       if((int)c[i]-48>9){
           if(c[i]=='A')
              sum+=10*Math.pow(16,n-i-1);
           else if(c[i]=='B')
               sum+=11*Math.pow(16,n-i-1);
           else if(c[i]=='C')
               sum+=12*Math.pow(16,n-i-1);
           else if(c[i]=='D')
               sum+=13*Math.pow(16,n-i-1);
           else if(c[i]=='E')
               sum+=14*Math.pow(16,n-i-1);
           else if(c[i]=='F')
              sum+=15*Math.pow(16,n-i-1);
       }
       else{
          sum+=((int)c[i]-48)*Math.pow(16,n-i-1);
       }
   }
   
    System.out.println(sum);
}
}

C实现:

#include <stdio.h>

int main()
{
    unsigned int n; 
    scanf("%X", &n);
    printf("%u", n);
    return 0;
}
 

    原文作者:进制转换
    原文地址: https://blog.csdn.net/hlgyjg/article/details/21751059
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞