黑马程序员技术交流社区

标题: 关于int类型的数据首位是0的问题,如:int i = 010; [打印本页]

作者: 刘军亭    时间: 2013-2-15 17:52
标题: 关于int类型的数据首位是0的问题,如:int i = 010;
本帖最后由 刘军亭 于 2013-2-15 18:43 编辑

i  的值打印出来为什么会是8,发现只要数据前边有零,打印的值就会出错。
//int i=01032;为什么打印出来却是i=538

public class Test {
        public static void main(String[] args){
               
                int i = 010;
                System.out.println("i="+i);
               
                //为什么打印出来却是i=8
        }
}

作者: jonn    时间: 2013-2-15 17:59
前面有0,进行运算我看 是八进制转换成十进制的吧。。。
作者: jonn    时间: 2013-2-15 18:00
8*1+0=8 打印结果是 8
作者: 刘军亭    时间: 2013-2-15 18:43
明白了,谢谢了
作者: 罗海云    时间: 2013-2-15 20:47
前面加0就是八进制. 所以会是8;




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