程序员面试(1):利用位运算完成两个整数的加法运算
来源:互联网 发布:程序设计导论 python 编辑:程序博客网 时间:2024/06/04 19:11
利用位运算计算两个整数的加法运算
解析:对于整数x和y,其二进制中相同位,若值相同(同时为1或者0),则通过x&y可以求出其平均值(1或者0),在左移1位,则获得其和;若值不同(一个为1,一个为0),通过x^y获得其值,为其和的值;然后,把这两种情况的值相加,则为x和y的和;
旧版本:
int Add(int a, int b){ if(a==0 || b==0) return a|b; else return ((a&b)<<1) + a^b;}
上述代码有错,因为代码要用位运算实现两个整数的加法,所以,不能出现x+y这种。
新版本:
int Add(int a, int b){ if(a==0 || b==0) return a|b; int sum, carry; sum = a ^ b; carry= (a & b) << 1; return Add(sum, carry);}
阅读全文
0 0
- 程序员面试(1):利用位运算完成两个整数的加法运算
- 利用位运算实现两个整数的加法运算
- VC++ 利用位运算实现两个整数的加法运算
- 利用位运算实现两个整数的加法运算
- 利用位运算实现两个整数的加法运算,请代码实现,并作简要说明。
- 用位运算实现两个整数的加法运算
- 位运算实现两个整数的加法运算
- 位运算实现两个整数的加法运算
- 面试题~位运算实现两个整数的加法
- 利用位运算实现两个整数相加
- 位运算实现两个数的加法
- 整数的加法运算
- 位运算-加法运算、交换两个数值
- 利用位运算做加法
- 利用位运算实现加法运算
- 位运算求两个整数的平均值
- 位运算求两个整数的平均值
- 利用位运算判断整数的正负
- 关于Wrap Lighting与皮肤SSS
- PHP字符串的连接的简单实例
- 常见的排序算法
- [LeetCode] 136. Single Number
- Django 设置template的全局变量
- 程序员面试(1):利用位运算完成两个整数的加法运算
- 决策树(decision tree)的自我理解 (上)
- Swift3.0 直接插入排序
- 深入解析String#intern
- iOS开发 二维码扫描和生成
- LeetCode (Binary Tree Preorder Traversal)
- 【Algothrim】求从n个数中取r个数的组合
- [Java算法分析与设计]链式队列的实现
- windows 2008 server 安装VS2010 后无法无法访问数据库,提示“ORA-06413: 连接未打开”