关闭

基础练习 BASIC-11 十六进制转十进制

标签: java数据结构算法蓝桥杯
35人阅读 评论(0) 收藏 举报
分类:
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
     65535

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7696次
    • 积分:1447
    • 等级:
    • 排名:千里之外
    • 原创:143篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条