您的位置:首页 > 其它

蓝桥杯基础练习 十六进制转十进制

2018-03-27 08:56 405 查看
 基础练习 十六进制转十进制  时间限制:1.0s   内存限制:512.0MB      问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535可以用java自带的进制转换函数,当然最好还是自己编写代码实现一下进制转换。要注意的是给定的字符串最多为8位,所以能表示的十进制数最大为2^32,java中要用long存储,c++要用long long 或者unsigned int存储。
java代码:import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
String s=input.next();
//java自带的进制转换函数
// System.out.println(Long.valueOf(s, 16));
long k=0;
HashMap<Character, Integer>map=new HashMap<>();//存储16进制字符到10进制数的转换
for(char i='0';i<='9';++i)
map.put(i, i-'0');
for(char i='A';i<='F';++i)
map.put(i, i-'A'+10);
//将字符串转换为10进制数
for(int i=0;i<s.length();++i)
k=k*16+map.get(s.charAt(i));
System.out.println(k);//输出
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: