負數原碼與補碼之間相互轉換


背景:計算機內部用補碼表示二進制數。符號位 1 表示負數,0 表示正數。

正數:無區別,正數 的原碼= 反碼 = 補碼

重點討論負數

若已知 負數 -8,則其

原碼為:1000 1000,(1為符號位,為1代表負數,為0代表正數)

反碼為:1111 0111,(符號位保持不變,其他位置按位取反)

補碼為:1111 1000,(反碼 + 1)

 

即在計算機中 用 1111 1000表示 -8

 

若已知補碼為 1111 1000,如何求其原碼呢?

(1)方法1:求負數 原碼--->補碼 的逆過程。

        注意:符號位保持不變!

    (A)先 - 1,得到 1111 0111

    (B)取反(符號位保持不變,其他位置按位取反 ),得到 1000 1000

(2)方法2:

        注意:符號位保持不變!

    (A)將這個二進制數中(即 1111 1000),除了符號位,其余位置按位取反,得 1000 0111

    (B)+ 1,得到 1000 1000

總結:

        -1 后,再取反   和 取反后,再+1  的效果是一樣的。

       這就和  -(3-1)  和 (-3 +1) 是一個道理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM