1. 程式人生 > >原碼,反碼,補碼的簡單理解

原碼,反碼,補碼的簡單理解

最近看書又看到反碼補碼的東西,每次覺得這個東西很難理解,所以這次花了點時間來理解.後來發現其實這個好像也蠻好理解的.

首先,按照定義,正數的原碼,反碼,補碼相同.負數的反碼是除了符號位,其他位取反.然後補碼就是反碼再加一.這樣在做計算的時候用補碼計算,比如 +1  和 -1 相加就可以等於 0 了.那負數轉化補碼,為啥是這個規則呢?其實道理很簡單.就是希望兩個數在做位計算的時候,希望兩個數值相同,符號相反的數字正好可以進位掉.所有的兩個正負數如果相加,最終的結果如果是類似  11111111 這樣的結果,這個人時候如果再加上一個1 ,正好所有位數都進位.最終得到 0 . 比如 隨便寫一個 00000001 ,他希望加一個數最終變成 11111111,那麼就需要一個數字 11111110,這其實就是-1的反碼,然後再加 1,其實就是定義的 負數的補碼.   就是 反碼再加1.不曉得我表達清楚沒有...