當前位置:編程學習大全網 - 源碼下載 - 補碼,原碼,反碼什麽的。有什麽作用啊!

補碼,原碼,反碼什麽的。有什麽作用啊!

這三個詞是計算機裏面的內容,下面依次解釋:

原碼:原碼就是早期用來表示數字的壹種方式: 壹個正數,轉換為二進制位就是這個正數的原碼。負數的絕對值轉換成二進制位然後在高位補1就是這個負數的原碼。

舉例:

int類型的 3 的原碼是 11B(B表示二進制位), 在32位機器上占四個字節,那麽高位補零就得:

00000000 00000000 00000000 00000011

int類型的 -3 的絕對值的二進制位就是上面的 11B 展開後高位補零就得:

10000000 00000000 00000000 00000011      

但是原碼有幾個缺點,零分兩種 +0 和 -0 。很奇怪是吧!還有,在進行不同符號的加法運算或者同符號的減法運算的時候,不能直接判斷出結果的正負。妳需要將兩個值的絕對值進行比較,然後進行加減操作 ,最後符號位由絕對值大的決定。於是反碼就產生了。

反碼:正數的反碼就是原碼,負數的反碼等於原碼除符號位以外所有的位取反

舉例:

int類型的 3 的反碼是

00000000 00000000 00000000 00000011

和原碼壹樣沒什麽可說的

int類型的 -3 的反碼是

11111111 11111111 11111111 11111100

除開符號位,所有位,取反

解決了加減運算的問題,但還是有正負零之分,然後就到補碼了

補碼:正數的補碼與原碼相同,負數的補碼為 其原碼除符號位外所有位取反(得到反碼了),然後最低位加1.

舉例:

int類型的 3 的補碼是:

00000000 00000000 00000000 00000011

int類型的 -3 的補碼是

11111111 11111111 1111111 11111101

就是其反碼加1

最後總結:

正數的反碼和補碼都與原碼相同。

負數的反碼為對該數的原碼除符號位外各位取反。

負數的補碼為對該數的原碼除符號位外各位取反,然後在最後壹位加1。

擴展資料

二進制是計算技術中廣泛采用的壹種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進壹”,借位規則是“借壹當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是壹個非常微小的開關,用“開”來表示1,“關”來表示0。

20世紀被稱作第三次科技革命的重要標誌之壹的計算機的發明與應用,因為數字計算機只能識別和處理由‘0’.‘1’符號串組成的代碼。其運算模式正是二進制。19世紀愛爾蘭邏輯學家喬治布爾對邏輯命題的思考過程轉化為對符號"0''.''1''的某種代數演算,二進制是逢2進位的進位制。0、1是基本算符。因為它只使用0、1兩個數字符號,非常簡單方便,易於用電子方式實現。

  • 上一篇:FastAPI 依賴註入詳解:生成依賴樹
  • 下一篇:汽修廠微信營銷方法是什麽呢?
  • copyright 2024編程學習大全網