我在用leetcode做这个。
请求:
计算两个整数a和b的和,但不允许使用运算符+和-。
我无法理解它给出的解决方案
有人能解释一下这个getSum函数是如何工作的吗?
以下是JS中的答案:
var getSum=function(a,b) {
const Sum = a^b; //I can't understand how those two line's code can
const carry = (a & b) << 1; //get the sum
if(!carry) {
r
我正在看David Malan ()关于二进制的一些很棒的演讲。他谈到了有符号/无符号、1的恭维和2的补语表示。有一个4+ (-3)的加法,它是这样排列的:
0100
1101 (flip 0011 to 1100, then add "1" to the end)
----
0001
但他挥舞着他的魔力之手,扔掉了最后一杯酒。我做了一些维基百科的研究,有没有人能解释一下为什么那个特殊的进位(在8->16列中)被删除了,而他却保留了之前的那个?
谢谢!