剑指offer附加题 将二十六进制数转换成十进制

来源:互联网 发布:苹果天气软件图标 编辑:程序博客网 时间:2024/06/09 20:53

解题思路:

与二进制转换成十进制的做法差不多。假设一个二进制数1100,那么这个二进制代表的十进制可以这样计算:0*Math.pow(2,0) + 0*Math.pow(2,1) + 1*Math.pow(2,2) + 1*Math.pow(2,3) = 12。只需要注意二十六进制数A代表十进制的1,B代表十进制的2...,并将底数变为26即可。

import java.util.Scanner;public class Solution {public static void main(String[] args) {//接收用户输入Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String next = scanner.next();int twentyToDecimai = twentyToDecimai(next);System.out.println(twentyToDecimai + "");}}public static int twentyToDecimai(String s) {int result = 0;if (s == null || s.length() == 0) {return result;}char[] charArray = s.toCharArray();//遍历字符数组,从数组的尾部开始计算for (int i = charArray.length - 1 ; i >= 0; i--) {//拿到对应字符对应的数字int val = charArray[i] - 64;//拿到指数int exp = charArray.length - i - 1;result += val * Math.pow(26, exp);}return result;}}


原创粉丝点击