以下是引用hh373231690在2012-10-24 23:35:40的发言:
楼上说的对~~不过这题的解法虽然跑了一遍之后能够明白~~但是要我写的话 应该是写不出来啊。。
在你脑海中如果出现了二进制的加法竖式(像十进制一样,不过是0+0=0、0+1=1、1+1进1得0)
然后利用位运算符
‘&’:能找出1+1的位
‘^’:能运算0+0=0、0+1=1、1+1=0,但是不会进一
所以你再找个变量(设:f)先保存了1+1的位('&之后就能找出'),
如果不为0,就运算一次'^',然后把位进一(<<1)
(注意:第一次‘^’是需要相加的俩个变量,之后两个变量之和是和f)
如果为0,则:‘^’就是俩个变量的和