- public class Xiaohuihui {
- public static void main(String[] args) {
- int a = Integer.MAX_VALUE;
- int b = 12;
- a = a + b;
- b = a - b;
- a = a - b;
- System.out.println(Integer.MAX_VALUE);
- System.out.println(a);
- System.out.println(b);
- }
- }
复制代码 这问题是昨天一哥们问的 但是问题还没解决他就改为提问结束了 所以我再来求助
毕老师的视频也说是有bug的 就是当两个数之和超过int类型时会溢出 我也一直是这样觉得的 但昨天那位兄弟提出这个问题时我去测试过的确地可以转换的 而且两数之和也的确溢出了 为什么会这样呢? 要么是毕老师说错了我自己也理解错了 要么就是还有哪里没注意到 求高手指点
各位兄弟麻烦看清楚我问的是什么 不要再给我说例如下面这些东西了
//小练习:将两个变量内部的值进行互换。
//1,通过第三方变量。
int temp;
temp =n;
n=m;
m=temp;
//2,不用第三方变量
/*
11=3+8
8=11-3
2=11-8
*/
n=n+m;
m=n-m;
n=n-m;//但是,这种方法有局限性,如果n,m值非常大,则会超出int范围。
n=n^m;
m=n^m;//^:亦或.。此时的表达式是:(n^m)^m【但是,此时m的值已经变为之前的n的值了】
n=n^m;// 此时的表达式是:(n^m)^n
//一个数,如果同时对一个数异或两次,那就是原数。 |