位运算
代码随想录
代码随想录网站:https://programmercarl.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不用+、-、×、÷数字运算符做加法
1)使用位运算,sum1=a^b 相当于不进位的加法,因为0+1=1.1+0=1.1+1=0(因为不进位)0+0=0 正好是或运算2)sum2=(a&b)<<1,相当于算进位的数,因为只有1+1时进位3)结果就是sum1+sum2,当然如果这个加法还需要进位就执行第四步4)重复上面的过程一直到进位数(a&b)<<1为零,也就是不需要进位为止原创 2014-08-03 08:33:27 · 995 阅读 · 0 评论 -
一串数字中有两个只出现一次的数字其余都是成对相同,求这两个数
当然如果这个问题是只有一个不同的数,其他数字成对相同,那么就是把所有数字异或就得出这个数了这次是有两个只出现一次的数字,其他数字都成对相同1)先把所有数都异或得到数t2)算出t的二进制第一个1的位置flag3)将所有数根据二进制flag位置是否为1分成两组b1[],b2[] (此时每组数字的个数一定是奇数)4)将b1组异或得到ans1,将b2组异或得到ans2原创 2014-08-03 00:18:08 · 2335 阅读 · 0 评论
分享