搜索
查看: 1920|回复: 16
打印 上一主题 下一主题

书中44页思考一下内容如何理解 谢谢

[复制链接]
跳转到指定楼层
楼主
发表于 2013-12-17 10:36:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
问下书中44页 提到的
思考一下 为什么通过a=b-a;b=b-a;a=b+a;也可以将变量a与变量b中的值交换呢? 求解答

最佳答案

查看完整内容

http://bbs.ahalei.com/forum.php?mod=viewthread&tid=2758&highlight=%BD%BB%BB%BB 下面有人用不同颜色做了推导 另外我写的习题答案里面也有严格的推导过程 最后再重复一遍,这是过时的,不可移植(不同编译器可能产生不同结果)的写法 唯一正确的写法是用异或虽然还是过时的写法,但是至少可以移植了 另外要比用加减好记很多
沙发
发表于 2013-12-17 10:37:00 | 只看该作者
stu 发表于 2013-12-17 14:38
搜索了 多个关键字 没看到论坛中和我一样的问题求助帖子 ... 请明示 谢谢

http://bbs.ahalei.com/forum.php? ... hlight=%BD%BB%BB%BB

下面有人用不同颜色做了推导
另外我写的习题答案里面也有严格的推导过程

最后再重复一遍,这是过时的,不可移植(不同编译器可能产生不同结果)的写法
唯一正确的写法是用异或

  1. a ^= b;
  2. b ^= a;
  3. a ^= b;
复制代码
虽然还是过时的写法,但是至少可以移植了
另外要比用加减好记很多
板凳
发表于 2013-12-17 10:47:10 | 只看该作者
不正规的
  1. a=b^a;
  2. b=b^a;
  3. a=b^a;
复制代码
还差不多
地板
发表于 2013-12-17 11:02:24 | 只看该作者
It is me again...Let me have a try
a=b-a;
b=b-a;
a=b+a;
After the first row, a=b-a,b=b
After the second row, a=b-a,  b=b-a=b-(b-a)=a;
After the third row, a=b+a=a+(b-a)=b, b=a;
Thus,a=b,b=a
5#
发表于 2013-12-17 12:12:37 | 只看该作者
Vivian1091 发表于 2013-12-17 11:02
It is me again...Let me have a try
a=b-a;
b=b-a;

这里是中国人的论坛
6#
发表于 2013-12-17 12:59:51 | 只看该作者
4399APPLE 发表于 2013-12-17 12:12
这里是中国人的论坛

不好意思,刚电脑出问题了,打不出来汉字。。
您犯不着这么敏感吧
7#
发表于 2013-12-17 13:51:31 | 只看该作者
Vivian1091 发表于 2013-12-17 12:59
不好意思,刚电脑出问题了,打不出来汉字。。
您犯不着这么敏感吧

还有,你的单词有错误
8#
 楼主| 发表于 2013-12-17 14:05:12 | 只看该作者
4399APPLE 发表于 2013-12-17 10:47
不正规的还差不多

为搞清楚概念 特发此帖问下大家 习题当然没问题 不过原理还是没讲到
如果代码换成 a,b,t 自然知道是增加了个临时变量
但换成上述 a=b-a;b=b-a;a=b+a; 尽管得到的结果是变量赋于值调换了  但原理呢  我想知道的是原理。。。
9#
发表于 2013-12-17 14:09:46 | 只看该作者
stu 发表于 2013-12-17 14:05
为搞清楚概念 特发此帖问下大家 习题当然没问题 不过原理还是没讲到
如果代码换成 a,b,t 自然知道是增加 ...

异或后写入                     
10#
 楼主| 发表于 2013-12-17 14:13:01 | 只看该作者
4399APPLE 发表于 2013-12-17 14:09
异或后写入

尽管程序运行没问题 可能是我表述不清楚  我的意思是a=b-a;b=b-a;a=a+b;是不是之前 a,b,t 那段代码的推导过程  就像数学里有推导过程一样  我想知道的是这个  你那个没看懂 不好意思。。。
11#
发表于 2013-12-17 14:23:40 | 只看该作者
stu 发表于 2013-12-17 14:13
尽管程序运行没问题 可能是我表述不清楚  我的意思是a=b-a;b=b-a;a=a+b;是不是之前 a,b,t 那段代码的推导 ...

你在论坛里搜一下,我手打过很多次这个问题的解释了
12#
 楼主| 发表于 2013-12-17 14:38:38 | 只看该作者
rosynirvana 发表于 2013-12-17 14:23
你在论坛里搜一下,我手打过很多次这个问题的解释了

搜索了 多个关键字 没看到论坛中和我一样的问题求助帖子 ... 请明示 谢谢
13#
发表于 2013-12-17 15:01:47 | 只看该作者
4399APPLE 发表于 2013-12-17 13:51
还有,你的单词有错误

那实在抱歉了
14#
发表于 2013-12-17 15:02:15 | 只看该作者
4399APPLE 发表于 2013-12-17 13:51
还有,你的单词有错误

那实在抱歉了,你要是有功夫就继续纠缠吧
15#
 楼主| 发表于 2013-12-17 15:26:09 | 只看该作者
rosynirvana 发表于 2013-12-17 14:58
http://bbs.ahalei.com/forum.php?mod=viewthread&tid=2758&highlight=%BD%BB%BB%BB

下面有人用不同颜 ...

太感谢了  在看  再次谢谢大神 给力
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表