2012-03-24 204 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。