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

class Solution {

public:

int add(int num1, int num2){

int res = 0;

int Cin = 0;

int tmp = 1;

for(int i = 0;i<32;i++){

int a = num1 & tmp;//取得num1和num2的第i位的值

int b = num2 & tmp;

int S = (a^b)^Cin;//异或得到第i位的输出值

int Cout = (a&b)|(a&Cin)|(b&Cin);//与操作得到进位

Cin = Cout << 1;//传递到下一位的进位输入

tmp <<= 1;

res += S;//将第i位的输出值S加到res中

}

return res;

}

};

相关推荐
报错小能手17 小时前
数据结构 b树(b-)树
数据结构·b树
有一个好名字17 小时前
力扣-递增的三元子序列
算法·leetcode·职场和发展
陌路2017 小时前
S31 B树详解
数据结构·b树
Boop_wu17 小时前
[Java 数据结构] 图(1)
数据结构·算法
无尽的罚坐人生17 小时前
hot 100 128. 最长连续序列
数据结构·算法·贪心算法
Savior`L17 小时前
基础算法:模拟、枚举
数据结构·c++·算法
软件算法开发17 小时前
基于蘑菇繁殖优化的LSTM深度学习网络模型(MRO-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·蘑菇繁殖优化·mro-lstm
雪花desu17 小时前
【Hot100-Java中等】LeetCode 11. 盛最多水的容器:双指针法的直观理解与数学证明
算法·leetcode
POLITE317 小时前
Leetcode 438. 找到字符串中所有字母异位词 JavaScript (Day 4)
javascript·算法·leetcode
海绵宝龙17 小时前
Vue 中的 Diff 算法
前端·vue.js·算法