java中的一个小问题

topc0o0der 2014-10-10 07:29:27
	public static void main(String[] args){
int tmp = 2; int tmp2 = 3;
tmp ^= tmp2 ^= tmp ^= tmp2;
System.out.println(tmp);
System.out.println(tmp2);

}

为啥tmp交换完为0呢
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
topc0o0der 2014-10-30
  • 打赏
  • 举报
回复
java 里面的^=的汇编实现是两边同时压栈的。
-江沐风- 2014-10-11
  • 打赏
  • 举报
回复
分开写是交换,不分开写就不是交换了; 我记得c里好像是可以的;但Java这样写是不可以的;
厚德载物benr 2014-10-11
  • 打赏
  • 举报
回复
按位异或,你再试试,应该是0

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧