蓝桥杯算法题库 进制转换_16转10进制

蓝桥杯算法题库 16转10进制

题目

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

解题思路

1、将输入的16进制数用字符数组保存每一位;
2、十六进制数按权展开、相加即得十进制数。具体见图在这里插入图片描述

//java代码

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		char[] c = sc.next().toCharArray();
		int[] n = new int[c.length];
		long sum = 0;
		for (int i = c.length - 1; i >= 0; i--) {
			if (c[i] - '9' > 0) {
				n[i] = c[i] - 'A' + 10;
			} else {
				n[i] = c[i] - '0';
			}
		}
		//调用math.pow函数计算次方
		for (int i = n.length - 1; i >= 0; i--) {
			sum = sum + (long) (n[i] * Math.pow(16, n.length - 1 - i));
		}
		System.out.println(sum);
	}

猜你喜欢

转载自blog.csdn.net/NanyouqiaoMu_/article/details/85056623
今日推荐