黑马程序员技术交流社区

标题: 求大侠指点基本数据类型包装类的问题 [打印本页]

作者: 何仕映    时间: 2013-3-26 16:11
标题: 求大侠指点基本数据类型包装类的问题
本帖最后由 何仕映 于 2013-3-26 23:21 编辑

为什么以下程序运行的结果会是153呢?在231前面加个0为什么就变成了153呢?为什么不是0231呢?
  1. class  IntegerDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 sop(Integer.toString(0231));
  6.         }


  7.         public static void sop(Object obj)//打印
  8.         {
  9.                 System.out.println(obj);
  10.         }

  11. }
复制代码

作者: 高顺德    时间: 2013-3-26 16:22
本帖最后由 天下 于 2013-3-26 16:37 编辑

八进制0231的十进制是153  因为你在数字前面加了0使得转换程序把它认为是8进制了  所以你打印出来的值是153  如果你把0231的0去掉就可以打印出来153了
作者: HM李超    时间: 2013-3-26 16:52
231这个数值前面加一个“0”则表示的是八进制数了,0231转成十进制是2*8^2+3*8^1+1*8^0=128+24+1=153;
整数类型包括二进制,十进制,八进制,十六进制,包装类Integer的方法:static String toString(int i)  返回一个表示指定整数的 String 对象。
返回值以十进制的字符串形式体现。
作者: 程宁宁    时间: 2013-3-26 17:24
231在前面加上0,就由10进制变成了8进制数据:
    0231转成10进制就是153了.
作者: 芦子骐    时间: 2013-3-26 20:43
你用的是八进制的书写方式,例如:0x是16进制的表达方式,0是8进制的表达方式。
如果你想输出标准的0231,只能是用字符串形式了。




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