答案一:利用 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 要转换成的进制