有一個有趣的事實:2的(N)= 1的(N-1)
基於2的數量爲N的互補相當於1的補數的N減1。
即
2's(N) = 1's(N-1)
以下結果很明顯。
2's(N) = 1's(N) + 1
如何在第二個結果的幫助下證明第一個結果?
有一個有趣的事實:2的(N)= 1的(N-1)
基於2的數量爲N的互補相當於1的補數的N減1。
即
2's(N) = 1's(N-1)
以下結果很明顯。
2's(N) = 1's(N) + 1
如何在第二個結果的幫助下證明第一個結果?
二進制補碼和1的補碼映射到負數區域的一個負數區域,以便於CPU處理。
在8位數字的情況下,1的補碼映射-127 ..- 0到128..255,另一方面,2的補碼映射-128 ..- 1到128..255。
您可以再次執行1的補碼和2的補碼,因此重複應用1的補碼和2的補碼只會讓您回到相同的位置。 (所以,我們不需要擔心有關自己的正數。)
如果你看到提供的範圍從128到255的每個數字被替換爲一個單一的數字,這個數字之間的差異爲1 2的補碼和1的補碼。
數學表達式如下:(對於8位數字):
2's(N) = 1's(N) + 1
2's(N) = N^0xFF + 1
2's(N) = N^0xFF + 0xFE^0xFF
2's(N) = (N + 0xFE)^0xFF
2's(N) = (N - 1)^0xFF
2's(N) = 1's(N-1)
理由爲每個步驟:
Step 1: Given
Step 2: Definition of 1's complement
Step 3: Identity
Step 4: Distribution
Step 5: Identity (within 1's complement system)
Step 6: Definition of 1's complement
步驟5不正確。 (N + 0xFE)給出(N-2)。看到這裏:http://ideone.com/ovQvd –
它在2的補碼系統中提供N-2。當你使用1的補碼系統時,你需要在處理溢出時增加一個(考慮到-0)。我以爲你知道,所以我沒有提到它。 – OmnipotentEntity
它是2的補碼的定義中。你取1的補碼和1的相減。 – OmnipotentEntity
不,我們給1的補碼加1得到2的補碼。 –
對不起,我被騙了,我剛剛醒來,你當然是對的。 – OmnipotentEntity