题目描述:

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

分析:

"^"是不带进位的加法。

"&"可以得到所有进位位组成的数。

我们只需要将不进位加后的数与所有进位位组成的数右移一位的结果相加就可以得到和。

不过我们在上面一步的加法过程中,我们也只能用"^"不进位的加法。

所以我们要循环之前的步骤直到不出现进位的情况,这样我们的"^"就和普通加法一样了。

代码:

 class Solution {
public:
int Add(int num1, int num2) {
int a = num1 ^ num2; // 不进位加
int b = (num1 & num2) << ; // 要进位位组成的数右移一位
while(b) { // 不进位加后的数与要进位位组成的数右移一位的结果相加
int c = a ^ b;
b = (a & b) << ;
a = c;
}
return a;
}
};

最新文章

  1. Python-实现对表插入百万条数据
  2. CUBRID学习笔记 2 安装教程
  3. splunk rest api search
  4. homework-附加题:第12章基本数据类型阅读总结
  5. 解读Unity中的CG编写Shader系列4——unity中的圆角矩形shader
  6. webresource.axd文件的配置及使用
  7. JS禁止/启用滚动条
  8. merge 语句的语法
  9. Linux进程实时IO监控iotop命令详解
  10. RequireJS基础知识
  11. ldap配置系列二:jenkins集成ldap
  12. Asp.Net Output.Write()
  13. percona-5.7二进制多实例安装
  14. ant___令牌过滤器
  15. ATM取款机数据库设计
  16. mysql中的几种join 及 full join问题
  17. poj3080 Blue Jeans【KMP】【暴力】
  18. 从Trie树(字典树)谈到后缀树
  19. golang项目结构
  20. Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】

热门文章

  1. (转载)C++STL中vector容器的用法
  2. mysql数据库批量操作
  3. scala 测试类
  4. CR, LF, CR/LF区别与关系
  5. asp.net 正在加载/处理(兼容IE Chrome)
  6. C#读取EXECL关键代码
  7. 【noip模拟题】最大公约数(数论)
  8. 【BZOJ】1676: [Usaco2005 Feb]Feed Accounting 饲料计算(差分)
  9. 3% of users browse with IE9 and 14% of users have a disability. Why do we only cater for the former?
  10. Linux kernel parameter command line设置