题目来源: HJ5 进制转换
题目描述:
- 描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 - 输入描述:输入一个十六进制的数值字符串。
- 输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1:
输入:0xAA
输出:170
思路
由于十六进制的数的表示,在转换时,需要注意将0x去掉
具体实现:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
if(str.charAt(0) == '0'){ //判断是否有0x,有的话,去掉
str = str.substring(2,str.length());
}
System.out.println(Integer.valueOf(str,16)); //将不包含0x的部分转化为十进制
}
思路杂记
1.System,out.println()里面为一个对象的引用时,会自动调用toString方法将对象打印出来。
即:System,out.println(obj)与System,out.println(obj.toString)其实是一样的
2.常用知识
十进制转成十六进制: Integer.toHexString(int i)
十进制转成八进制:Integer.toOctalString(int i)
十进制转成二进制:Integer.toBinaryString(int i)
十六进制转成十进制:Integer.valueOf("FFFF",16).toString()
八进制转成十进制 :Integer.valueOf("876",8).toString()
二进制转十进制:Integer.valueOf("0101",2).toString()
有什么方法可以直接将2,8,16进制直接转换为10进制的吗?
java.lang.Integer类
parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。