使用 XOR 和 AND 门的整数总和
Sum of integers using XOR, AND gates
如何在不使用 SHIFT 运算符(也不使用算术运算符)的情况下使用按位 NOT、XOR、AND 和 OR 运算符计算两个整数之和?可能吗?
示例 C 代码:
int a = 5;
int b = 11;
int c = a ^ b;
int d = a & b;
int sum = ...
我们取 a = b = 1
。这个总和的结果是sum = 2
。输入的二进制表示是 00000001
(为简单起见,我们使用 8 位)。输出为 00000010
。您可以轻松获得最低有效位,LSB = a0 XOR b0
,但要修改位号 1,您需要移位。
如何在不使用 SHIFT 运算符(也不使用算术运算符)的情况下使用按位 NOT、XOR、AND 和 OR 运算符计算两个整数之和?可能吗?
示例 C 代码:
int a = 5;
int b = 11;
int c = a ^ b;
int d = a & b;
int sum = ...
我们取 a = b = 1
。这个总和的结果是sum = 2
。输入的二进制表示是 00000001
(为简单起见,我们使用 8 位)。输出为 00000010
。您可以轻松获得最低有效位,LSB = a0 XOR b0
,但要修改位号 1,您需要移位。