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

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) 返回 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
10
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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值