知道某負數補碼後如何計算其絕對值?

2021-05-27 11:54:05 字數 466 閱讀 5879

前些天寫了如下日誌:

現在補充一點:

按照【譚浩強.c程式設計(第三版).北京:清華大學出版社,2005】的第40頁至第41頁所述,求乙個負數的補碼的方法如下:

【例】求-10的補碼的方法如下:

1)取-10的絕對值10;

2)10的絕對值的二進位制形式為1010;

3)對1010取反得1111 1111 1111 0101(這裡假定乙個整數佔16位)

4)再加1得1111 1111 1111 0110;

即取補碼的步驟是將其絕對值按位取反再加1即可……

現在**的問題是知道了-10的補碼後如何計算其絕對值?

現在列出計算步驟如下:

1)將其補碼取反得:0000 0000 0000 1001;

2)然後加1得:0000 0000 0000 1010;

即得-10的絕對值10……

因此已知負數a,則|a|=~a+1;

負數轉換為補碼

有些基礎還得重新拿起來,以前剛學的時候不知道為什麼,現在才真能豁然開朗。我們已經知道計算機中,所有資料最終都是使用二進位制數表達。我們也已經學會如何將乙個10進製數如何轉換為二進位制數。不過,我們仍然沒有學習乙個負數如何用二進位制表達。比如,假設有一 int 型別的數,值為5,那麼,我們知道它在計算...

負數轉換為補碼

有些基礎還得重新拿起來,以前剛學的時候不知道為什麼,現在才真能豁然開朗。我們已經知道計算機中,所有資料最終都是使用二進位制數表達。我們也已經學會如何將乙個10進製數如何轉換為二進位制數。不過,我們仍然沒有學習乙個負數如何用二進位制表達。比如,假設有一 int 型別的數,值為5,那麼,我們知道它在計算...

(七)負數的補碼

我們都知道二進位制只有0和1 比如1在8 位的二進位制數字裡的原碼是 0000 0001,而7 的原碼是 0000 0111 1的原碼則為 1000 0001,其中第乙個紅色數字 1,表示負號,是符號位。如果是正數則為0,7的原碼是 1000 0111 那麼變成補碼的話,正數的補碼和原碼相同,負數的...