HJ5-进制转换(十六进制转十进制)(重复)
(java实现)
题目描述:
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1:
输入
0xA
0xAA
输出
10
170
问题分析:
思路一:使用十六进制的原理进行计算。
思路二:使用内置函数
相关知识:
略
参考代码:
思路一实现:
import java.util.*; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNext()) { String str = input.nextLine(); str = str.substring(2); char[] ch = str.toCharArray(); int sum = 0; int tmp = 0; for (int i=ch.length-1; i>=0; i--) { if (ch[i]>='0' && ch[i]<='9') { tmp = ch[i]-'0'; sum = sum + (int)Math.pow(16,ch.length-i-1)*tmp; }else { tmp = ch[i]-'A'+10; sum = sum + (int)Math.pow(16,ch.length-i-1)*tmp; } } System.out.println(sum); } } }
思路二实现:
import java.util.*; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNext()) { String str = input.nextLine(); System.out.println(Integer.decode(str)); } } }