1.十进制转为二进制、八进制、十六进制 用 Integer.toXXXString();方法
(1)十进制转为二进制: Integer.toBinaryString(int i);
public static String toBinaryString(int i):
- 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
public static String toOctalString(int i)
-
以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
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) 返回 0 parseInt("473", 10) 返回 473 parseInt("-0", 10) 返回 0 parseInt("-FF", 16) 返回 -255 parseInt("1100110", 2) 返回 102 parseInt("2147483647", 10) 返回 2147483647 parseInt("-2147483648", 10) 返回 -2147483648 parseInt("2147483648", 10) 抛出 NumberFormatException parseInt("99", 8) 抛出 NumberFormatException parseInt("Kona", 10) 抛出 NumberFormatException parseInt("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(); }结果是: 10 10 10 10try{Integer.valueOf(String s,int radix);切记使用此方法需要抛出异常,返回的是Integer类型public static Integer valueOf(String s, int radix) throws NumberFormatException 返回一个
Integer
对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的String
中提取的值。
//十六进制转成十进制
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