計算機原碼、反碼、補碼與位運算


 

首先我們需要知道計算機存儲數據是以補碼的形式存儲的,正數的碼首位都是0,負數的碼首位都是1

正數的原碼、反碼和補碼是一樣的

例如7的原碼: 00000111 

    反碼:00000111

   補碼:00000111

負數的原碼、反碼和補碼是不一樣

例如-7的原碼是:10000111

   負數的反碼是首位不變,其他位取反 ,1取反是0,反之

      所以-7的反碼:11111000

    負數的補碼等於反碼+1

     -7的補碼:11111001

我們常見的位運算,就是對存儲在計算中的補碼進行的,用補碼進行位運算,結果以原碼的形式輸出

例如 -7&7 = 00000111

       11111001

結果是00000001, 也就是1 

那么 -7|7 = 00000111 |

      11111001

結果是11111111

很明顯這是一個負數

所以要得到他的原碼 必須-1 得到反碼 

也就是11111110

再反碼基礎上,以首位不變,其他取反,可以得到 10000001

這樣我們就得到結果的原碼了

首位1代表負數

所以結果是-1


免責聲明!

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



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