81,092
社区成员
发帖
与我相关
我的任务
分享
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);
}
}