10进制转16进制算法 java_用java 写一个10进制转16进制的算法 怎么写

展开全部

^

一个数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);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值