1.题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
2.解题思路
利用&、|、^等运算
(1)定义一个sum和一个进位位carry,sum用来记录二进制的两位数无进位相加得到的值(num1^num2),进位位carry用来记录需要向哪个位进位(num&num2<<1)
(2)将得到的sum和carry重新赋值给num1和num2.循环的结束条件是进位位为0时终止。
3.代码
1 | public class Solution { |
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
利用&、|、^等运算
(1)定义一个sum和一个进位位carry,sum用来记录二进制的两位数无进位相加得到的值(num1^num2),进位位carry用来记录需要向哪个位进位(num&num2<<1)
(2)将得到的sum和carry重新赋值给num1和num2.循环的结束条件是进位位为0时终止。
1 | public class Solution { |
文章作者:qiulig
发布时间:2019-05-12, 09:57:08
最后更新:2019-05-19, 10:22:12
文章字数:250
原始链接:http://blogs.qiulig.website/2019/05/48-不用加减乘除做加法/
许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。