剑指Offer 不用(+,-,*,/)实现两个数相加

不用加减乘除做加法

https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&tqId=11201&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

在计组中,半加器、全加器中:
两个二进制的相加结果是用一个异或门实现的;
两个二进制的进位结果是用一个与门来实现的。

 public class Solution {    
public int Add(int num1, int num2) {      
  int result, ans;       
 do {           
 result = num1 ^ num2;       // 每一位相加           
 ans = (num1 & num2) << 1;   // 进位            
 num1 = result;           
 num2 = ans;       
 } while (ans != 0);        
return result;    
}
全部评论

相关推荐

03-12 15:35
嘉应学院 Python
快说谢谢牛牛精灵:说不定就是下一个寒武纪!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务