在十进制中我们有0-9,十个数字;而在十六进制中我们有0-9和A-F,十个数字和六个字母。
因此该进制转换等同于是数字转换为字符的转换。
判断value是否大于16,
用value%16来求当前value的位数,再将value/16。
直到value小于16
输出时,先输出高位,再输出低位。
import java.util.Scanner;
public class Test02 {
public static char data[]={'0','1','2','3','4','5'
,'6','7','8','9','A','B'
,'C','D','E','F'};
public static void Print(char[] num,int n){
int i;
for( i=n-1;i>=0;i--)
System.out.print(num[i]);
System.out.println(" ");
}
public static int TransForm(char[] num,int value){
int n=0;
while(value>=16){
num[n++]=data[value%16];
value/=16;
}
num[n++]=data[value%16];
return n;
}
public static void main(String[] args){
Scanner s=new Scanner(System.in);
Test02 t1 =new Test02();
int value=s.nextInt();
char[] num=new char[10];
t1.Print(num, t1.TransForm(num, value));
}
}