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));
}
}
}


