硬件中的数字的补码

时间:2013-03-08 15:26:11

标签: architecture numbers hardware mips digits

您是否知道一种算法或方法来找出基数N中数字的补码。

      For example number 001112 which is in base 3 .

谢谢

2 个答案:

答案 0 :(得分:1)

对于具有k个数字的数字,从(N k N 中减去它(当然,在基数N中执行减法)。

答案 1 :(得分:0)

关于补语的定义,请参阅http://www.enggpedia.com/computer-engineering-encyclopedia/dictionary/dgital-logic-design/1603-complements-types-of-complements-radix-a-diminished-radix-complement 在你的例子中,补数是3 ^ 6 - 001112(基数3)=(333333 + 1-001112)(基数3)=(332221 + 1)(基数3)= 332222。

编辑:

以下评论当然是正确的。很抱歉发布了这样一个错误的例子。让我试着重新阐述我想说的话(如果我再次出错,请纠正我):

你的例子,用基数3表示,是:

 1000000
- 001112
--------
= 221111  

问题是是否应该添加最后的1 如果一个只有无符号数,则不需要加1,但补码没有算术意义 如果有人签名,则可以将补语解释为原始数字的一种负数,但不是负数本身。基数2的一个例子:
如果n = 01101,则n 1的补充10010。如果我们同时添加两者,结果当然是11111,这不是零。因此,n 1的补码不是-n。但是如果我们添加最后的1,我们得到00000,即零。因此,构建 1的补码并添加1的结果称为 2的补码,这可以解释为-n
我认为任何基础都适用。