不用加减乘除做加法

模拟计算机的加法器实现

  • x存放不进位的加法结果,y存放进位。不进位的结果加上进位就是答案,换句话就是x+y
    • 不进位加法结果可以通过异或实现,两数相加的进位可以通过逻辑与,再左移一位实现
  • 计算x+y,又是重复上面的步骤,循环即可,直到进位为0,循环结束
class Solution {
public:
    int add(int a, int b){
        //ab存放两个加数
        while(b)//直到进位为0为止
        {
            int x=a^b;//完成不考虑进位的加法
            int y=(a&b)<<1;//计算当前进位
            a=x;
            b=y;
        }
        return a;
    }
};
posted @   穿过雾的阴霾  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示