您是否知道一种算法或方法来找出基数N中数字的补码。
For example number 001112 which is in base 3 .
谢谢
答案 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
。
我认为任何基础都适用。