如何计算二进制补码

时间:2013-01-28 00:13:47

标签: assembly logic bits circuit

如果没有在公式中明确使用0001(使用power - 1111 - 或ground - 0000),你将如何获得4位数的2的补码?

我尝试使用分离器,但将单独的1位数重建为4位数不起作用。

2 个答案:

答案 0 :(得分:1)

您可以将4位放入一个字节的高4位,取消该字节,然后查看高4位。

答案 1 :(得分:1)

要使用逻辑计算二进制补码,通常使用一半半加法器:

(sum,c_out) = HA(a,b) ==  
 c_out := a & b,
 sum := a ^ b;  

第一个HA实际上是重言式:bit_0 == a_0,c_1 == 1, 如果需要,可以进行优化。最后一次执行c_4也被拒绝了。

(bit_0,c_1)   := HA(not a_0, c_0 = 1)
(bit_1,c_2)   := HA(not a_1, c_1)
(bit_2,c_3)   := HA(not a_2, c_2)
(bit_3,[c_4]) := HA(not a_3, c_3)

对于汇编程序,可以使用twos_comp(i)为n位数== 2 ^ n - i的事实,对于i!= 0。