已有258人关注
int型溢出为什么不报错?
发表在Java答疑区 2017-04-14
是否精华
版块置顶:

int x=10000;

int y=12345678;

System.out.println(x*y);

int x=10000;int y=12345678;

int z=x*y;

System.out.println(z);


Eclipse运行均未报错,类似的运行结果都是负数或明显不对的正数,为什么?谢谢老师


分享到:
精彩评论 4
234499245
学分:5 LV1
2017-04-15
沙发

理解成编译器规则就可以了,int 类型范围是-2,147,483,648 to +2,147,483,647


int a= 2,147,483,647;


那么 a+1 = -2147483648

David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-04-15
板凳

如果读者在eclipse中,写入“int a = 2147483648;”,eclipse就会报错,把鼠标悬停在红色波浪线处,就会提示“The literal 2147483648 of type int is out of range.”

浅滩海贝_1490925544
学分:34 LV2
2017-04-16
地板

234499245 发表于2017-04-15 11:08

理解成编译器规则就可以了,int 类型范围是-2,147,483,648 to +2,147,483,647


int a= 2,147,483,647;


那么 a+1 = -2147483648

好的谢谢

浅滩海贝_1490925544
学分:34 LV2
2017-04-16
4L

David 发表于2017-04-15 15:41

如果读者在eclipse中,写入“int a = 2147483648;”,eclipse就会报错,把鼠标悬停在红色波浪线处,就会提示“The literal 2147483648 of type int is out of range.”

好的谢谢

首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照