LeetCode:位运算实现加法

写在前面

位运算符

实现加法的思路

两个加数,比如5(101)和6(110),如何不用加法就能得出两者之和呢?

我们知道二进制计算中,如果使用异或将会产生无进位的两者之和,而两数相与将会产生进位值!!!

可这样又如何呢?

1 sum = 011
2 carry =1000

两者继续异或将会产生

结果就出现了,此时无进位,所以进位为0时,sum将会为最终结果!因为此时不需要进位,异或运算就是最终结果!

优质代码

1     public int getSum(int a, int b) {
2         while(b!=0)
3         {
4             int carry = a&b;
5             a=a^b;
6             b=carry<<1;
7         }
8         return a;
9     }

参考链接

https://github.com/awangdev/LintCode/blob/master/Java/A%2BB.java

转载于:https://www.cnblogs.com/MrSaver/p/8370812.html

LeetCode:位运算实现加法相关推荐

  1. C语言位运算实现加法

    新建一个单文档工程: 在视类CPP文件头部添加函数声明: 函数体可以加到视类CPP文件尾部: int Add(int a,int b) { int jw=a&b; int jg=a^b; wh ...

  2. LeetCode位运算(找出落单的数,二进制中1的个数,2的幂等)

    文章目录 位运算理论+技巧介绍 1.与 & 2.异或 ^ 3.移位及综合运用(指定位置) 4.同或 开撸 1. lc136 只出现一次的数字 2. lc137 只出现一次的数字II 3. lc ...

  3. leetcode位运算的题

    leetcode 371 不用加减计算两个数的和 class Solution(object):def getSum(self, a, b):"""circuit ful ...

  4. 【LeetCode·位运算.67】二进制求和,详解分析+两种思路+知识点总结

    二进制求和

  5. JavaScript 位运算总结拾遗

    最近补充了一些位运算的知识,深感位运算的博大精深,此文作为这个系列的总结篇,在此回顾下所学的位运算知识和应用,同时也补充下前文中没有提到的一些位运算知识. 把一个数变为大于等于该数的最小的2的幂 一个 ...

  6. 只用位运算不用算术运算实现

    题目 给定两个32位整数a和b,可正.可负.可0.不能使用算术运算符,分别实现a和b的加减乘除. 要求 如果给定的a和b执行加减乘除的某些结果本来就会导致数据的溢出,那么你实现的函数不必对那些结果负责 ...

  7. CodeForces - 1451E2 Bitwise Queries (Hard Version)(交互+构造+位运算)

    题目链接:点击查看 题目大意:给出一个长度为 n(n 保证了是 2 的幂次),每个数的范围在 [ 0 , n - 1 ] 的一个数组,现在要求通过有限次操作确定下来这个数组: 询问 a[ i ] xo ...

  8. java游戏将相_(Java)算法——位运算基础及基本应用

    位运算基础及基本应用 在处理整形数值时,可以直接对组成整形数值的各个位进行操作.这意味着可以使用屏蔽技术获得整数中的各个位(??) 位运算是针对整数的二进制进行的位移操作 整数 32位 , 正数符号为 ...

  9. 位运算实现加减乘除四则运算

    目录 加法 减法 乘法 除法 计算机最基本的操作单元是字节(byte),一个字节由8个位(bit)组成,一个位只能存储一个0或1,其实也就是高低电平.无论多么复杂的逻辑.庞大的数据.酷炫的界面,最终体 ...

最新文章

  1. Python3 统计 ftp 文件个数和大小
  2. Java集合框架(二)—— HashSet、LinkedHashSet、TreeSet和EnumSet
  3. git id 切分支 按_Git分支本地操作详解
  4. 思科查看服务器启动配置文件,启动配置检查UCS
  5. mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决
  6. 给div命名,使逻辑更加清晰
  7. b700a怎么连蓝牙_小身材有大功能,小米蓝牙耳机AirDots青春版初体验
  8. selenium 简介
  9. Hybrid App开发设计与实现
  10. 自定义配置节 Section
  11. Ubuntu硬盘的挂载(临时、永久挂载)
  12. 【图像处理基础】基于matlab GUI图像处理(反色+亮度+二值化+空间肤色检测)【含Matlab源码 1008期】
  13. 针对P2P终结者4.0版本的研究
  14. 程序报错误Illegal instruction的解决办法
  15. 惠普暗影精灵6安装Ubuntu双系统显卡及Wi-Fi问题解决
  16. python圣诞雪人
  17. JAVA--阿尔法平台编程练习---篮球弹跳
  18. 十三、ThinkPHP6_数据库的时间查询
  19. Thingsboard开源IOT平台(一)--基本介绍
  20. 15个国外最佳免费图片素材网…

热门文章

  1. opc调试软件_组态王和三菱OPC软件完美演绎天塔之光
  2. linux 卸载nfs device is busy,umount.nfs: device is busy解决办法
  3. 簇的局部变量中布尔类型_java基础2(变量、常量、数据类型)
  4. a - 数据结构实验之串一:kmp简单应用_【在线教学示范课案例】数据结构(刘航)...
  5. 【WebRTC---序篇】(一)为什么要使用WebRTC
  6. 【安卓开发 】Android初级开发(一)控件通用属性
  7. 【开源项目】基于QT录制PCM音频实例详细
  8. android相册管理,Piktures - 最优雅的相册管理 - Android 应用 - 【最美应用】
  9. openmv串口数据 串口助手_STM32 串口接收不定长数据 STM32 USART空闲检测中断
  10. mysql+误操作怎么恢复_Mysql误操作恢复流程