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

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;

}

};

相关推荐
iAkuya7 分钟前
(leetcode)力扣100 17缺失的第一个正数(哈希)
算法·leetcode·哈希算法
断剑zou天涯16 分钟前
【算法笔记】树状数组IndexTree
java·笔记·算法
sonadorje17 分钟前
ECC公钥生成过程
算法·安全
声声codeGrandMaster19 分钟前
线性回归实战下与深度学习概念
深度学习·算法·线性回归
sin_hielo28 分钟前
leetcode 2092(排序+bfs)
算法·leetcode·宽度优先
C雨后彩虹39 分钟前
斗地主之顺子
java·数据结构·算法·华为·面试
墨上烟雨1 小时前
Pandas 数据结构 - Series
数据结构·pandas
鸽鸽程序猿1 小时前
【刷题册】二
算法
CoderCodingNo1 小时前
【GESP】C++四级真题 luogu-B4416 [GESP202509 四级] 最长连续段
开发语言·c++·算法
xjxijd1 小时前
工业元宇宙 IDC 支撑:数字孪生算法 + 边缘服务器,生产调度响应速度提 3 倍
运维·服务器·算法