专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html
题目描述
不用加减乘除做加法
题解报告
最优解法:使用异或
1)异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果。
2)按位与是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果,下次循环累加到数字上。(这些进位实际上相当于该位为零,上一位多个1,那么把上一位置1累加上去就行了)
3)这样就变成了每次只异或保存非进位位加操作后的结果,进位位下次再异或保存上去,下次还要判断是否有进位。
in