一种基于二进制运算的整数加法伪码算法

时间:2016-12-07 20:01:11

标签: python algorithm

我已经尝试了很长时间才找到解决方案,但却无法理解它。

它需要基于使用标准逻辑运算的两个整数,这些运算具有直接硬件实现AND,OR,XOR,NOT

如果有人能解释,请帮助我开始帮助我的项目。

我想用Python来表达这个

2 个答案:

答案 0 :(得分:1)

>>> add = lambda x, y: x if y == 0 else add(x^y, (x&y) << 1)
>>> add(5, 6)
11

答案 1 :(得分:1)

基本组件是full adder。它有3个输入(来自a的位,来自b和进位的位)和两个输出(一点和和进位)。它的功能是

    out = a ^ b ^ carry
    carry = a & b | (carry & (a^b))

最初进位为0.将上述语句应用于从最低有效位开始的每个位。