蓝桥杯—进制转化 Java代码
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由 0----9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过20。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
import java.util.Scanner;
public class _04进制转换2 {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
int n=sc.nextInt();
String []s=new String[n];
for (int i = 0; i < s.length; i++) {
s[i]=sc.next();
}
for (int i = 0; i < s.length; i++) {
int s1=Integer.valueOf(s[i],16);//将16进制转为10进制
String s2=Integer.toOctalString(s1);//将10进制转为8进制
System.out.println(s2);
}
}
}
常用进制间的转换有:
2进制转为10进制:int a= Integer.valueOf(“2进制表示的数”,16)
8进制转为10进制:int b= Integer.valueOf(“8进制表示的数”,16)
16进制转为10进制:int c= Integer.valueOf(“16进制表示的数”,16)
10进制转为2进制:String a= Integer.toBinaryString(s1) 其中s1表示的是一个10进制的数
10进制转为8进制:String b= Integer.toOctalString(s1) 其中s1表示的是一个10进制的数
10进制转为16进制:String c= Integer.toHexString(s1) 其中s1表示的是一个10进制的数