2012-03-24 202 views

回答

0

用于基本-10的自互补码是码针对其给定的编码位数d [0-9]的互补将导致9-d,9的补码。为了以二进制编码Base-10数字,我们需要能够表示10个值[0-9],这意味着我们需要4位,因为3位可以表示8个不够的值; 4比特可以表示16个值,这比我们需要的更多,但是我们没有(或者想要)小数位。

在这4位中有许多可能的编码方案,其中最直观的是8-4-2-1方案,或者十进制值的直接二进制编码。为了使用8-4-2-1对12进行编码,可以分别将[1]和[2]编码为它们各自的二进制表示[0001]和[0010]。

9的补码在二进制编码十进制/基数为10的数字的上下文中相关,因为9是编码Base-10数字时所需的最大值。

您的示例隐含Base-16,显示为十进制,为此您正确生成15的补码而不是9的补码。 8-4-2-1直观地是Base-16的自补码,因为取4位二进制数的补码与从15中减去它相同。

对于Base- 10数字表示的方式相同,因为我们在16个成员代码空间中仅代表10个值,这就是为什么许多更复杂的系统被设计为生成用4位二进制数表示十进制数的自补码的原因。

表13.1这里:[http://www.inf.fu-berlin.de/lehre/WS00/19504-V/Chapter1.pdf]显示了用于十进制编码的两个自补码,即8,4,-2,-1和超3编码方案,后面的章节描述了自我背后的目的和理论 - 补充代码。

0

一些改述为澄清: IIRC它意味着当可见数从9中减去,“数量” 编码被位反转,即从15

人们可以编码例如减去0 = 0011,1 = 0100,2 = 0101,...,9 = 1100(所谓过剩-3,详见modi的回复

1

如果权重之和是9,那么它是自补例如,5211 =(5 + 2 + 1 + 1)= 9或2421 =(2 + 4 + 2 + 1)= 9 8421并非自补,所以8421!= 9。