2012-10-01 32 views
1

我想。減去1的數以二進制表示1010 1101我寫1的二進制補碼:1111 1111,與我的第一個數字總結:二進制減法:2的補購自運

按位加法,攜帶,給1 1010 1100:因爲攜帶,我最終以1比特多。這是如何處理二進制加法?

另外,我在使用補碼做補充嗎?

謝謝。

+0

什麼是您的計算的位寬?如果它是一個字節,你只關心至少8位,所以進位(第9位)丟失。二進制補碼只有在定義位寬的情況下才有意義....(並且您正在計算模數2^8,即256) –

回答

2

這是一種完全有效且常用的減法方法,但「攜帶」標誌並不意味着它與正常添加相同。由於不是減去n,而是增加了一個大數字,進位標誌需要以不同的方式處理。額外的1通常意味着進行逐位加法,而這裏表示一切正常。如果在那裏沒有進位,實際上意味着結果應該是負的 - a - b被轉換爲a + 2^n - b,這小於2^n,這意味着b > a等等a - b < 0。無論哪種方式,這並不重要,因爲您的結果將在結果的8位內正確顯示。