StupidBeauty
Read times:301Posted at:Wed Nov 16 05:32:47 2011

对a=a^b;b=a^b;a=a^b;的推导

本座转载咯一個神奇的技巧:http://stupidbeauty.com/Blog/2011/11/%e8%bd%ac%e8%bd%bd%ef%bc%9ac%e7%bc%96%e7%a8%8b%e5%b0%8f%e6%8a%80%e5%b7%a7/

a=a^b;

b=a^b;

a=a^b;

这样执行之后,a就等于原来的b,b就等于原来的a。

在执行过程中,两个值的变化情况:

a=a^b;

此时a=(原a^原b),b=原b。

b=a^b;

此时b=(原a^原b)^原b,a=(原a^原b)。按照结合律,b=(原a^原b)^原b=原a^(原b^原b)=原a^0=原a,因此b这个时候已经等于原a咯,b=原a。

a=a^b;

此时a=(原a^原b)^原a=(原a^原a)^原b=0^原b=原b。到这个时候,a就等于原b咯,a=原b。

不知道某人一开始是如何想到这个技巧的,这一招能起作用的根本原因可能在于异或是可逆的,其实a和b都在其中暗暗地充当咯临时变量。

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4