位运算实现两个整数的加法运算
来源:互联网 发布:linux ext3 ext4 区别 编辑:程序博客网 时间:2024/06/06 10:51
在程序员面试宝典中,看到了这个知识点,在这里记录一下实现代码。
#include <iostream>using namespace std;int add(int a,int b){ if(b==0) return a; int sum,carry; sum=a^b; carry=(a&b)<<1; return add(sum,carry);}int main(){ int a,b; cin>>a; cin>>b; cout<<add(a,b)<<endl; return 0;}add函数中,其中a&b是取a与b相同位的一半,再左移一次<<之后就是a与b相同位的一半的两倍了,而a^b是取a和b的不同位,这个时候相当于不变,将其相加即为将a和b的相同位与不同位都加在一起,即实现了两个数相加,其中还考虑到了进位的情况。不过不足的是使用了循环,比较麻烦。
阅读全文
0 0
- 用位运算实现两个整数的加法运算
- 位运算实现两个整数的加法运算
- 利用位运算实现两个整数的加法运算
- VC++ 利用位运算实现两个整数的加法运算
- 利用位运算实现两个整数的加法运算
- 位运算实现两个整数的加法运算
- 面试题~位运算实现两个整数的加法
- 利用位运算实现两个整数的加法运算,请代码实现,并作简要说明。
- 位运算实现两个数的加法
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- Hackerrank Magic Cards
- sql面试题及答案总结
- 剑指Offer—38—二叉树的深度
- 51nod 2006 飞行员配对(二分图最大匹配)
- 不具参考价值--struts2 那个啥
- 位运算实现两个整数的加法运算
- hdu6181Two Paths(次短路模板题)
- Spring笔记-通过Spring的配置文件来配置bean
- Salty Fish
- Path Sum,Path Sum II,Path Sum III总结
- 并发编程-synchronized的实现原理和应用
- 最大差值(贪心)
- maven 自动部署 tomcat
- Android studio 单独设置Logcat字体大小,单独设置代码编辑区字体大小