答案一:利用 printf 实现进制转换
public class Main
{
public static void main(String[] args)
{
System.out.printf("0"+"%o",1234);
System.out.printf(" 0X"+"%X",1234);
}
}
解析:
- "%d"表示以十进制整数形式输出
- "%o"表示以八进制形式输出
- "%x"表示以十六进制输出
- "%X"表示以十六进制输出,并且将字母(A、B、C、D、E、F)换成大写
- "%e"表示以科学计数法输出浮点数
- "%E"表示以科学计数法输出浮点数,而且将e大写
- "%f"表示以十进制浮点数输出,在"%f"之间加上".n"表示输出时保留小数点后面n位
答案二:利用 Integer 实现进制转换
public class Main
{
public static void main(String[] args)
{
int i=1234;
System.out.println("0"+Integer.toOctalString(i)+" 0X"+Integer.toHexString(i).toUpperCase());
}
}
解析:
Integer类的方法 - Integer.toBinaryString()可实现十进制转换成二进制
- Integer.toOctalString()可实现十进制转换成八进制
- Integer.toHexString()可实现十进制转换成十六进制
- Integer.valueOf(s, radix)
将第一个参数解释为用第二个参数指定的基数表示的有符号整数
将 s 以 radix 进制的形式转换为十进制 - toUpperCase表示转换为大写字母
- toLowerCase表示转换为小写字母
答案三:利用 BigInteger 实现进制转换
import java.math.BigInteger;
public class Main
{
public static void main(String[] args)
{
System.out.println("0" + change("1234",10,8) + " 0X" + change("1234",10,16));
}
/**
* number 要转换的数
* from 原数的进制
* to 要转换成的进制
*/
private static String change(String number, int from, int to)
{
String str = new BigInteger(number, from).toString(to);
return str.toUpperCase();
}
}
解析:
change(String number, int from, int to)
number 要转换的数
from 原数的进制
to 要转换成的进制