中易网

怎么在java上完成,实现两个int类型变量的交换,不使用中间变量

答案:2  悬赏:0  
解决时间 2021-02-23 00:43




最佳答案
方法有很多,这里举出两种常用的:
方法1:使用^操作来实现
int x = 10;
//用二进制表示:x=0b1010;
int y = 15;
//用二进制表示:x=0b1111;
System.out.println("x="+x+" y="+y);
x = x^y;
//x^y= 0b1010^0b1111 = 0b0101
y = x^y;
//x^y= 0b0101^0b1111 = 0b1010 =10
x = x^y;
//x^y= 0b0101^0b1010 = 0b1111 =15
System.out.println("x="+x+" y="+y);
方法2:使用+,-操作来实现
int x = 10;
int y = 15;
System.out.println("x="+x+" y="+y);
x = x+y;
//x= 10+15=25
y = x-y;
//y= 25-15=10
x = x-y;
//x= 25-10=15
System.out.println("x="+x+" y="+y);
结果:
x=10 y=15
x=15 y=10
早期为了减少中间变量对计算机内存的占用,采用中间的方法来交换数据。其实这种交换并不完美,如果交换的两个数都很大,可能会内存溢出。在现在的开发中建议使用中间值来交换数值。
全部回答
直接使用    integer.tostring(int型数据) ;   就是了...没有必要搞别的, 也不用导入类包,因为 integer类位于 java.lang 包中... 和string类在一个位置...   记住这个方法  会返回一个字符串数据,你需要在前面 用个变量接受返回的数据
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海门市服务管理工作领导小组办公室地址在哪,
小白跪求告知三星920P到底支持什么网络
我家新盖的平房山墙有两条上下贯穿的裂缝.算
最近动不动额头就出汗 感觉热 运动过后会脸红
这5天的水位分别是多少
麦乐迪量贩式KTV地址在什么地方,想过去办事
请预测一下杨洋会是快女第几名
洛奇英雄传皇帝裙子如何得到
欧记首饰我想知道这个在什么地方
您好: 我的老公是上门女婿如果离婚他会得到
为什么我早起喝了大概500毫升的水 两个小时后
非凡灵感这个地址在什么地方,我要处理点事
从普陀山到宁波栎社国际机场
求黑暗之魂太阳骑士索拉尔怎么死的还有他的故
信用卡追债通知书下来多久被起诉
推荐资讯
mysql中的alter table 问题
新月商务宾馆地址在哪,我要去那里办事
宁铁燃气第三供气站怎么去啊,有知道地址的么
dnf复仇者穿什么套装好
中通东光公司地址在哪,我要去那里办事
梁祝文化公园的历史沿革
净月西部回迁小区二期在哪里啊,我有事要去这
以一幅画和一座建筑为例,探讨人们对它们空间
手机桌面整理
求易语言大神给一个餐饮管理软件源码?
东海县睿智电脑有限公司地址在什么地方,想过
高手给推荐款适合游戏的笔记本 6000—7000左
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?