(java题目第3讲)整数进制转换

来源:互联网 发布:诸神黄昏神羽进阶数据 编辑:程序博客网 时间:2024/05/21 12:39
1.十进制转为二进制、八进制、十六进制     用  Integer.toXXXString();方法(1)十进制转为二进制: Integer.toBinaryString(int i);
    public static String toBinaryString(int i):
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
(2)十进制转为8进制 :Integer.toOctalString(int i);
     public static String toOctalString(int i)
以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

(3)十进制转为16进制: Integer.toHexString(int i);
public static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
 
parseInt 例子:   

eg: String s1 = Integer.toBinaryString(10);
        System.out.println(s1);
        String s2 = Integer.toOctalString(10);
        System.out.println(s2);
        String s3 = Integer.toHexString(10);
        System.out.println(s3);

结果是:1010
12
a


2、十六进制、八进制、二进制转为十进制(有两种方法) parseInt() 和 valueOf()
 Integer.parseInt(String s,int radix);切记使用此方法需要抛出异常,返回的是int型
  public static int parseInt(String s,int radix) throws NumberFormatException使用第二个参数作为指定的基数,将字符串参数解析为有符号的整数,   
(1)parseInt("0", 10) 返回 0parseInt("473", 10) 返回 473parseInt("-0", 10) 返回 0parseInt("-FF", 16) 返回 -255parseInt("1100110", 2) 返回 102parseInt("2147483647", 10) 返回 2147483647parseInt("-2147483648", 10) 返回 -2147483648parseInt("2147483648", 10) 抛出 NumberFormatExceptionparseInt("99", 8) 抛出 NumberFormatExceptionparseInt("Kona", 10) 抛出 NumberFormatExceptionparseInt("Kona", 27) 返回 411787(2) try{    int i1 = Integer.parseInt("0xa", 16);//如果这样写会报错    System.out.println(i1);   int i11 = Integer.parseInt("A", 16);//这样写就不会报错,所以如果字符串前面带有符号,先substring一下    System.out.println(i11);   int i2 = Integer.parseInt("12", 8);   System.out.println(i2);    int i3 = Integer.parseInt("1010", 2);   System.out.println(i3);}catch (Exception e){    e.printStackTrace();}结果是:java.lang.NumberFormatException: For input string: "0xa"    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)    at java.lang.Integer.parseInt(Integer.java:492)    at com.converse.TO.main(TO.java:12)改为:            try{            int i1 = Integer.parseInt("a", 16);            System.out.println(i1);            int i11 = Integer.parseInt("A", 16);            System.out.println(i11);            int i2 = Integer.parseInt("12", 8);            System.out.println(i2);            int i3 = Integer.parseInt("1010", 2);            System.out.println(i3);        }catch (Exception e){            e.printStackTrace();        }
结果是:10101010
Integer.valueOf(String s,int radix);切记使用此方法需要抛出异常,返回的是Integer类型
 public static Integer valueOf(String s,   int radix) throws NumberFormatException返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。 
try{
            //十六进制转成十进制
            String six = Integer.valueOf("FFFF",16).toString();
            System.out.println(six);
            //八进制转成十进制
            String eight = Integer.valueOf("12",8).toString();
            System.out.println(eight);
            //二进制转十进制
           String two = Integer.valueOf("0101",2).toString();
           System.out.println(two);
        }catch (Exception e){
            e.printStackTrace();
        }

结果是:
65535
10
5

 
0 0
原创粉丝点击