黑马程序员技术交流社区

标题: 为什么0开头的int变量不等于原值? [打印本页]

作者: 新航向    时间: 2014-7-31 20:43
标题: 为什么0开头的int变量不等于原值?
本帖最后由 新航向 于 2014-8-1 20:51 编辑

为什么int a=0700;打印结果会变为448?
代码如下:class IntTest
{
        public static void main(String[] args)
        {
                int a=0700;
                System.out.println("a:"+a);
        }
}

打印结果为:448

QQ截图20140731204202.jpg (39.08 KB, 下载次数: 23)

QQ截图20140731204202.jpg

作者: fantacyleo    时间: 2014-7-31 21:05
0开头表示8进制数,八进制数700,对应10进制就是448
作者: 江苏孙浩    时间: 2014-7-31 21:07
同0x开头的
作者: deer王璐    时间: 2014-7-31 21:10
java在默认int的声明中默认采用的是10进制
10进制不可能以0开头
以0开头的是8进制
int a=0700; //赋值赋的是8进制
System.out.println("a:"+a);//打印int默认用10进制
        
作者: hdchenyue    时间: 2014-7-31 21:30
java在默认int的声明中默认采用的是10进制
10进制不可能以0开头
以0开头的是8进制
int a=0700; //赋值赋的是8进制

作者: 新航向    时间: 2014-7-31 21:59
哦,多谢各位
作者: 碎流    时间: 2014-7-31 22:15
8进制转成十进制呢
作者: 梧桐树下    时间: 2014-7-31 23:16
八进制运算




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