C++ 原码、反码、补码理解笔记
生活随笔
收集整理的這篇文章主要介紹了
C++ 原码、反码、补码理解笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
電腦是以補碼形式來表示數字的。正數:原碼,反碼,補碼都相同 ;負數:反碼為除符號位外按位取反,補碼為反碼+1。
- 如-1這個負數:
-1的補碼:1111 1111
-1的反碼:1111 1110
-1的原碼:1000 0001
比如我們平時看到5000的無符號短整數(16位整數),其實是原碼(位模式)轉換成反碼再轉換成補碼后顯示的結果,所以如果要知道原碼是多少,需要反向轉換一下,即從補碼轉成反碼再轉成原碼。
1) 補碼:無符號短整數 50,000在計算機中存儲時是補碼11000011 01010000
2) 反碼:減1變成反碼,1100001101010000 - 1 = 1100001101001111
3)原碼:取反,變成原碼,not 1100001101001111 = 0011110010110000,即15536,再因為補碼最高位是1,所以是-15536
但是5000的二進制是0001001110001000,最高位是0,正數,所以補碼、反碼、原碼都一樣,位模式也是5000
附上一個簡單好用的進制轉換器鏈接link
總結
以上是生活随笔為你收集整理的C++ 原码、反码、补码理解笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 决策树——学习笔记(一)
- 下一篇: Opencv+Windows+Codeb