用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位,若不够前面补0。(不考虑输入不合法的情况)
输入
1D5
输出
(注意冒号后面有一个空格)
Hex: 0x1D5
Decimal: 469
输入
1D5
输出
(注意冒号后面有一个空格)
Hex: 0x1D5
Decimal: 469
Octal: 0725
import java.math.BigInteger;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
import java.util.Vector;
public class Main1 {
static Scanner in=new Scanner(System.in);
public static void main(String[] args) {
String a=in.next();
int ba[]=new int[4];
int sum=0,sum1=0;int k=0;
for(int i=a.length()-1;i>=0;i--){
if(a.charAt(i)>='A'&&a.charAt(i)<='F'){
sum+=(a.charAt(i)-55)*Math.pow(16, k++);//将字符转化为整形
}
else sum+=(a.charAt(i)-'0')*Math.pow(16, k++);
}
sum1=sum;int j=0;
while(sum!=0){
ba[j++]=sum%8;
sum=sum/8;
}
System.out.println("Hex: 0x"+a);
System.out.println("Decimal: "+sum1);
System.out.print("Octal: ");
for(int i=3;i>=0;i--){
System.out.print(ba[i]);
}
}
}