美文网首页
算法笔记之位运算实现加法

算法笔记之位运算实现加法

作者: 简单一点点 | 来源:发表于2020-12-16 08:27 被阅读0次

看一下使用位运算实现加法运算的题目。

LeetCode 371. 两整数之和

不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。

解题思路

在二进制的计算中就是要通过位操作来得到结果的低位和进位,对于不同的情况,用表格来表示一下,两个数字分别为a和b

a b 低位 进位
1 0 1 0
0 1 1 0
0 0 0 0
1 1 0 1

从上面可以发现,低位 = a^b,进位 = a & b。这样的计算可能要持续多次,回想一下在十进制的计算中,如果进位一直大于0,就得往后面进行计算,在这里也是一
样,只要进位不是0,我们就得一直重复计算低位和进位的操作。

代码实现

最终实现的Java代码如下所示:

class Solution {
    public int getSum(int a, int b) {
        int sum = 0;
        while(b != 0) {
            sum = a ^ b;
            b = (a & b) << 1;
            a = sum;
        }
        return sum;
    }
}

相关文章

  • 算法笔记之位运算实现加法

    看一下使用位运算实现加法运算的题目。 LeetCode 371. 两整数之和[https://leetcode-c...

  • 面试知识汇总-2019.7.16

    手撕代码题: 其他数据结构与算法中有那些奇技淫巧位运算装逼指南 ---- 带你领略位运算的魅力 单项列表实现加法运...

  • 【加法笔记系列】JS 加法器模拟

    JS 加法器模拟,实现 半加器 全加器 波纹进位加法器 全部代码 补码 & 减法 常规位运算 位运算 & 简单的 ...

  • 使用位运算实现加法运算

    简书上的文章已经不再维护,有兴趣阅读其他文章,或一起交流的朋友,请移步 我的博客:punmy.cn 原文 位操作实...

  • 网页制作加法运算

    加法运算 这是我写的一个简单的加法运算法则,可以根据这个加法变换出多种,比如加减乘除都能去实现,可以说非常实用。如...

  • 位运算实现整数加法

    让我们先用我们熟悉的加法对二进制数字进行推算; 101 + 011 = 1000 如果忽略进位,那么在计算每一位时...

  • 算法笔记之位运算实现复合状态

    位运算的用途之一,实现复合状态,每一位代表一个状态。 LeetCode 289. 生命游戏[https://lee...

  • 1.7 openCV-python 图像运算

    学习图像上的算术运算,加法,减法,位运算等。 按位运算

  • 位运算加法

    1. 运算符号 2. 运算说明 === 与运算 & === and运算通常用于二进制的取位操作,例如一个数 & 1...

  • 机试常用算法和题型-大数专题

    大数专题 字符加减关系,实现任意长度整数相加 大数加法,进阶转换版 大数浮点数加法 大数运算之阶乘

网友评论

      本文标题:算法笔记之位运算实现加法

      本文链接:https://www.haomeiwen.com/subject/hefngktx.html