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

lyuxuan 2009-11-30 07:25:14
用java 写一个10进制转16进制的算法 怎么写啊 帮忙写一个
...全文
1621 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang677888 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bao110908 的回复:]
Java codepublicclass MyInteger {privatefinalstaticchar[] HEX="0123456789abcdef".toCharArray();publicstaticvoid main(String[] args) {int k=12345678;
System.out.println(toHex(k));
System.out.println(Integer.toHexString(k));
}publicstatic String toHex(int num) {if(num==0) {returnnew String(HEX,0,1);
}char[] chs=newchar[Integer.SIZE/4];int offset= chs.length-1;while(num!=0) {
chs[offset--]= HEX[num&0xf];
num>>>=4;
}returnnew String(chs, offset+1, chs.length- offset-1);
}
}
[/Quote]

不错啊,帮顶

呵呵,楼上都说的很好
ouyangyh 2009-11-30
  • 打赏
  • 举报
回复

public class NumberConver {

public static void main(String[] args) {
long num=(long)(Math.random()*Long.MAX_VALUE);
StringBuffer res=new StringBuffer();
convert(res,num,2);
System.out.println("convert:"+res);
System.out.println("Long.toHexString:"+Long.toBinaryString(num));
}

/**
* 转换进制(由10进制转换为指定进制)
* @param res 存放结果
* @param num 转换的数
* @param degit 转换后的进制(小于30)
*/
public static void convert(final StringBuffer res,long num,final int degit){
if (num<0||res==null||degit<=1||degit>30){
throw new IllegalArgumentException();
}
if (num<degit){
res.append(getNumber(num));
res.reverse();
}else{
long num1=num%degit;
res.append(getNumber(num1));
convert(res,num/degit,degit);
}
}
/**
* 将数字转换成相应的进制表示方
* @param number
* @return
*/
private static String getNumber(long number){
if (number<10){
return String.valueOf(number);
}else{
return String.valueOf((char)('A'+number-10));
}
}
}
  • 打赏
  • 举报
回复
public class MyInteger {

private final static char[] HEX = "0123456789abcdef".toCharArray();

public static void main(String[] args) {
int k = 12345678;
System.out.println(toHex(k));
System.out.println(Integer.toHexString(k));
}

public static String toHex(int num) {
if(num == 0) {
return new String(HEX, 0, 1);
}
char[] chs = new char[Integer.SIZE / 4];
int offset = chs.length - 1;
while(num != 0) {
chs[offset--] = HEX[num & 0xf];
num >>>= 4;
}
return new String(chs, offset + 1, chs.length - offset - 1);
}
}
lyuxuan 2009-11-30
  • 打赏
  • 举报
回复
不要JDK里的啊 自己写一种算法 你们明白没呀 自己写方法
lanwenyao 2009-11-30
  • 打赏
  • 举报
回复
public static void main(String[] args) {

System.out.println(Integer.toHexString(10));

}

就是那么简单
lyuxuan 2009-11-30
  • 打赏
  • 举报
回复
昏也。。。俺的意思是 谁自己写一个算法啊 谁帮帮忙啊
bayougeng 2009-11-30
  • 打赏
  • 举报
回复
哈哈,20分轻轻松松被一行代码搞定。
你也可以自己按照10进制与16进制的换算规则自己写算法的。
  • 打赏
  • 举报
回复
对,完了

在 JDK 5 还可以这样写 String.format("%x", 1234);
lyuxuan 2009-11-30
  • 打赏
  • 举报
回复
这就完了??
cweijiaweil 2009-11-30
  • 打赏
  • 举报
回复
public static void main(String[] args) {

System.out.println(Integer.toHexString(10));

}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧