形式化描述:
给定长度均为n的bool数组A与B,分别代表整数A`和B`的二进制表示(数组从左到右为数的高位到低位)。求一个n+1位的bool数组C,使得C代表的整数C`=A`+B`
伪代码如下
ADD(A, B)
C = new bool[A.length+1]
carry = false
for i = 1 to A.length
C[i] = (A[i] xor B[i]) xor carry
carry = (A[i] and B[i]) or ((A[i] xor B[i]) and carry)
C[A.length+1] = carry
return C