黑马程序员技术交流社区

标题: 求解!谢谢 [打印本页]

作者: 王运科    时间: 2012-4-1 12:42
标题: 求解!谢谢
String ret = Integer.toBinaryString(-5);   
       System.out.println(ret);   
      DecimalFormat df = new DecimalFormat  ("00000000,00000000,00000000,00000000");   
      System.out.println(df.format(Integer.valueOf(ret)));  

出现异常如下:
11111111111111111111111111111011
Exception in thread "main" java.lang.NumberFormatException: For input string: "11111111111111111111111111111011"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at com.develop.bit.TestBitCalculate.main(TestBitCalculate.java:60)

但如果把Integer.valueOf改成Double.valueOf,异常就没有了,但输出的值很奇怪。如下:
11111111111111111111111111111011
11111111,11111111,20000000,00000000
求解!谢谢。



作者: 何万县    时间: 2012-4-1 13:54
toBinaryString是把-5转化为二进制,负数在计算机中是以补码形式存储




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2