题目描述
写一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。
输入描述:
* 输入一个十六进制的数值字符串。
输出描述:
* 输出该数值的十进制字符串。
输入例子:
* 0xA
输出例子:
* 10
算法实现:
方法一:
将十六进制的数值字符串转换成十进制字符串,用Integer类的
public static int parseInt(String s, int radix)
方法:使用第二个参数指定的基数,将字符串参数解析为有符号的整数。substring 方法 截取字符串
public String substring(int beginIndex, int endIndex)
方法: 第一个int为开始的索引,对应String数字中的开始位置;第二个是截止的索引位置,对应String中的结束位置- 取得的字符串长度为:endIndex - beginIndex;
- 从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符
例如:
“hamburger”.substring(4, 8) returns “urge”
“smiles”.substring(1, 5) returns “mile”
取长度大于等于3的字符串a的后三个子字符串,只需a.subString(a.length()-3, a.length());
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//多个测试用例使用while(sc.hasNext()){}
while(sc.hasNext()){
String s = sc.next().substring(2);
System.out.println(Integer.parseInt(s, 16));
}
}
}
方法二:
JAVA 转换 总结
类:Integer或Long
方法:toBinaryString(int i)
整数 转换成 二进制
(参数i 表示要转换成字符串的整数)类:Integer或Long
方法:toOctalString(int i)
整数 转换成 八进制
(参数i 表示要转换成字符串的整数)类:Integer或Long
方法:toHexString(int i)
整数 转换成 十六进制
(参数i 表示要转换成字符串的整数)类:Integer或Long
方法:toString(int i,int radix)
任意进制整数 转换成 其他进制的整数
(参数i:表示要转换成字符串的整数,radix:表示用于字符串表示形式的基数)int H_int = 0xA57B; //十六进制声明:前面加0x String h_string= Integer.toString(H_data, 2); System.out.println(h_2);
public class Main { public static void main(String[] args){ int O_data = 0766; //八进制声明:前面加0 int T_data = 123456; //十进制声明 int H_data = 0xA57B; //十六进制声明:前面加0x // 八进制转换成二进制 System.out.println("八进制" + O_data + "转换成二进制:"); System.out.println(Integer.toString(O_data, 2)); System.out.println(Integer.toBinaryString(O_data)); // 八进制转换成十进制 System.out.println("八进制" + O_data + "转换成十进制:"); System.out.println(Integer.toString(O_data, 10)); System.out.println(Integer.toString(O_data)); // 八进制转换成十六进制 System.out.println("八进制" + O_data + "转换成十六进制:"); System.out.println(Integer.toString(O_data, 16)); System.out.println(Integer.toHexString(O_data)); //十进制转换成二进制 System.out.println("十进制" + T_data + "转换成二进制:"); System.out.println(Integer.toString(T_data, 2)) ; System.out.println(Integer.toBinaryString(T_data)); } }
类:Integer或Long
方法:parseInt(String s) 或 parseLong(String s)
将字符串 转换成 整数String s = "0123"; int b = Integer.parseInt(s); System.out.println(Integer.parseInt(s));
类:Integer或Long
方法:parseInt(String s, int radix) 或 parseLong(String s, int radix)
任意进制字符串 转换成 其他进制的整数
(参数s:表示要转换成整数的字符串;radix:表示用于整数表示形式的基数)
Java中在声明数字时默认采用的是十进制,可以在数字前加上特定的符号表示数字采用八进制或者十六进制。数字前面加数字0(零)表示该数字是八进制,例如:012。加0x(零x)表示该数字是十六进制。例如:0x00FF。