展开全部
^
一个数A 可以写 A=a1*10^e69da5e6ba903231313335323631343130323136353331333363393133(n-1) +a2*10^(n-2)+....+an (0<=an<=9) 这个很清楚吧 ,那么a1a2...an就是这个十制数的写法,比如 123=1*10^2+2*10^1+3*10^0 ,那么A也可以写成
A=b1*16^(n-1)+b2*16^(n-2)+....+bn (0<=bn<=F,10-15用A-F来代替) 这种形式吧,那么 b1b2...bn 就是这个十制数的16进制的写法.有了这个形式,那么求16进制数就很简单了,A%16 就是bn ,(A-A%16)%16 就是bn-1,....
java:public class Test{
publict static void main(String[]args){
System.out.println(change(16));
System.out.println(change(15));
System.out.println(change(-16));
System.out.println(change(-20));
System.out.println(change(20));
}
public static String change(int n){
if(n<0)
return "-"+change(-n);
if(n<16){
return "0123456789ABCDEF".charAt(n)+"";
}else{
return change(n/16)+change(n%16);
}
}
}