int a =  10;
int b = 101;
int c = 0101;
System.out.println(a);
System.out.println(b);
System.out.println(c);
为什么输出结果是
10
101
65前面两个都没有问题,但是第三个前面突然加了一个0为了试一试是不是自动去掉0了,但是结果是怎么样的,我不认为是jdk的问题,我真不知道是为什么,请大神门帮解答

解决方案 »

  1.   

    不是的,我刚试了,c = 0101 转16进制是正确的,但是改成其他数字比如c = 01234;
    输出的值是668 但是1234转十六进制是4d2 八进制是2322所以不是的,现在我也不理解到底为什么??
      

  2.   

    看懂了,是前前面加0是八进制转换成了10进制就是668,就是不是有人说0xxx的数字会自动将0去掉吗?
      

  3.   

    java里面,0开头就是八进制了,0x是十六进制
    顺带说下,在js里面,有个paserInt方法,parseInt(12)就是12,而parseInt(012)就是八进制了。除非用两个参数,制定进制数。如parseInt(012,10)就是十进制了。