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

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;

}

};

相关推荐
Lisonseekpan8 分钟前
雪花算法(Snowflake)技术详解与实战应用
java·分布式·后端·算法
软件算法开发35 分钟前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm
2401_8772742444 分钟前
太原理工大学2025数据结构-栈和队列
数据结构·c++·算法
资深web全栈开发1 小时前
LeetCode 1262. 可被三整除的最大和 - 解题思路与代码
算法·leetcode·职场和发展
淀粉肠kk1 小时前
【数据结构】红黑树
数据结构·c++
保持低旋律节奏2 小时前
算法——冗余!哈希表、vector、string适配器的混合使用
数据结构·算法·散列表
weixin_457760002 小时前
OpenCV 图像处理基础算法详解(一)
图像处理·opencv·算法
做怪小疯子3 小时前
LeetCode 热题 100——链表——相交链表
算法·leetcode·链表
while(努力):进步3 小时前
5G与物联网:连接万物的数字化未来
leetcode
立志成为大牛的小牛4 小时前
数据结构——五十一、散列表的基本概念(王道408)
开发语言·数据结构·学习·程序人生·算法·散列表