黑马程序员技术交流社区
标题:
自学视频中,关于变量运算的小疑问
[打印本页]
作者:
belowfox
时间:
2016-7-20 16:01
标题:
自学视频中,关于变量运算的小疑问
本帖最后由 belowfox 于 2016-7-26 17:39 编辑
为什么
int b1 = 2147483647;
int b2 = 2;
int b3 = b1 + b2;
复制代码
输出b3=-2147483647,超出int范围前面的被省了。
但
byte b1 = 127;
byte b2 = 2;
byte b3 = b1 + b2;
复制代码
就会报错呢?而不是像上面一样强制转换?
作者:
15105106710
时间:
2016-7-20 23:22
因为系统中整数默认的是int类型,如果没有特殊要求便会在int类型取值范围内进行循环;long类型的数据后面是要加上L或者l用来区别int类型。
而byte类型不是默认形式,因此必须使用强制转换来实现在byte取值范围内进行循环,例如byte128的取值就是-128一样,超过部分开始循环。
就好比英语是默认公用语言,到哪都可以正常使用;而中文不是默认形式,你跟外国人用中文交流是不行的,你要真想用中文交流,那你就必须强制老外学习好中文才能交流一样吧!我是这么理解的。希望能够帮助到你。
作者:
qetu001212
时间:
2016-7-20 23:27
这个不会强转的,会直接报错
作者:
belowfox
时间:
2016-7-21 18:49
大概懂了
作者:
belowfox
时间:
2016-7-21 19:04
为什么我找不到结束提问的按钮,难道我发帖发错地方了?????
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2