C語言:二進制的正負表達方式

原碼:十進制轉二進制。(10:0000 1010)

  1. 正數的原碼按照絕對值大小轉換成的二進制數(10:    0000 1010)
  2. 負數的原碼:按照絕對值大小轉換成的二進制數,然後最高位補1(-10:    1000 1010)
  3. 正數的反碼:與原碼相同(10:0000 1010)
  4. 負數的反碼:除符號位外(首位不變)各位取反(-10:    1111 0101)
  5. 正數的補碼:與原碼相同(10:0000 1010)
  6. 負數的補碼:除符號位外各位取反,然後在最後一位加1(-10:    1111 0101+1=1111 0110

注:補碼加1:01+1=10    (二進制加法,同十進制9+1=10)

                      0100+1=0101

                      0111+1=1000

PC計算機上二進制的正負用的是補碼表示,

例如:32位的,-5  原碼:00000000 00000000 00000000 00000101 

                                反碼:11111111 11111111 11111111 11111010

                                補碼:11111111 11111111 11111111 11111011

所以-5最終在PC的表達式是 11111111 11111111 11111111 11111011 ,十六進制表示爲0xFFFFFFFB


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章