2010-10-04 78 views
3

我讀過維基百科:
」一般來說,對於基數r的補碼編碼,其中r是數字系統的基數(基數),m個數字的整數部分和n個數字的小數部分,則通過以下公式確定編號爲0≤N<r ^(m-1)-r ^( - n)的r的補碼:N ** =(r^m-N)mod(r ^米)「數的補充

我不明白,位數的數量,即m取決於基數r?
例如:如果我想找到97的100的補碼,那麼是m = 2還是m = 1?對於m = 2,我得到的答案爲9903
對於m = 1,我得到的答案爲03
因此,我應該採取m = 2還是m = 1?

+0

你能發表你所指的維基百科文章的地址嗎?我很高興看到閱讀。謝謝。 – 2010-10-04 17:55:31

+0

http://en.wikipedia.org/wiki/Two's_complement#Complement_of_a_positive_number – 2010-10-05 16:28:50

回答

1

維基百科對method of complements的文章可能會給出比我更好的解釋,但我會盡力嘗試。

位數不一定取決於基數,而取決於其使用的上下文。換句話說,5在基數2(即二進制)中沒有補數,但它在10中有一個補碼的二進制數字-251。這意味着在二進制補碼中,-5可以表示爲0b11111011

同樣,97在base-100中沒有補碼。它確實在一位數的整數,兩位數的整數或一個n位的整數基數爲100的數字中有一個補碼。

您可以選擇開發一種能夠處理100個補碼的算術機器。如果您使用一位數字整數,則可以用您的第97個數字表示-3。如果您偏好兩位數的整數,-3將由您的第99個數字和您的第97個數字表示。


起初這是一個困難的概念,這在一個尚未開發的數字系統中是雙重的 - 我還沒有看到基數爲100。 :-)先嚐試在較小的基礎上展示補充肌肉的方法,十六進制是一個好的開始。

單個十六進制數的7的16的補碼是9.在一個兩位數的數字中,它是F9。在一個三位數字中,它是FF9。因此