https://electronics.stackexchange.com/questions/20537/how-to-identify-self-complementing-code自我完成代碼
我已閱讀,正確,
,但它是必要的,這個數字需要從9扣除?
因爲在8421系統 12 = 1100
,如果我們減去15-12,那麼答案是3,這是0011。
所以它也被自我補充...
我不明白的是,在給定數量需要從哪個號碼相減,就是數neccessary爲9 ???
https://electronics.stackexchange.com/questions/20537/how-to-identify-self-complementing-code自我完成代碼
我已閱讀,正確,
,但它是必要的,這個數字需要從9扣除?
因爲在8421系統 12 = 1100
,如果我們減去15-12,那麼答案是3,這是0011。
所以它也被自我補充...
我不明白的是,在給定數量需要從哪個號碼相減,就是數neccessary爲9 ???
用於基本-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編碼方案,後面的章節描述了自我背後的目的和理論 - 補充代碼。
一些改述爲澄清: IIRC它意味着當可見數從9中減去,「數量」 編碼被位反轉,即從15
人們可以編碼例如減去0 = 0011,1 = 0100,2 = 0101,...,9 = 1100(所謂過剩-3,詳見modi的回覆
如果權重之和是9,那麼它是自補例如,5211 =(5 + 2 + 1 + 1)= 9或2421 =(2 + 4 + 2 + 1)= 9 8421並非自補,所以8421!= 9。