原碼,反碼和補碼

 

目錄

附加概念介紹

1.機器數

2.真值

原碼

反碼

補碼


在介紹原碼,反碼和補碼之前,得先來介紹兩個概念。

附加概念介紹

1.機器數

一個數在計算機中的二進制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號,正數爲0,負數爲1.

例:十進制中 +3,計算機字長爲8位,則表示爲機器數是 0000 0011;如果是 -3,表示爲機器數是 1000 0011.

 

2.真值

因爲機器數的第一位是符號位,故其形式值不等於其真實值,舉個例子:

-3 的機器數爲 1000 0011,但是二進制數 1000 0011轉換爲十進制是 131。

故爲區別兩者,將帶符號位的機器數所對應的真實數值稱爲機器數的真值。


原碼

即用第一位表示符號,其餘位表示值。如果是八位二進制,如:

+1 的原碼:0000 0001

-1 的原碼:1000 0001

所以八位二進制的取值範圍是:[1111 1111, 0111 1111] 即 [-127, +127]

 

反碼

反碼的表示方式爲:

  • 正數的反碼是其本身
  • 負數的反碼是在其原碼的基礎上,符號位不變,其餘各個位取反(按位取反)

(+1)=(0000 0001)原 =(0000 0001)反

(-1)=(1000 0001)原 =(1111 1110)反

 

補碼

補碼的表示方式:

  • 正數的反碼是其本身

  • 負數的反碼是在其原碼的基礎上,符號位不變,按位取反,最後 +1(即在反碼的基礎上 +1)​​​​​​​

(+1)=(0000 0001)原 =(0000 0001)反 = (0000 0001)補

(-1)=(1000 0001)原 =(1111 1110)反 = (1111 1111)補

 

在計算機系統中,數值一律用補碼錶示(存儲)。主要原因:使用補碼可以將符號位和其他位統一處理;同時減法可以按加分來處理;另外,兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,補碼與原碼的轉換過程基本相同。

1 - 1  = 1 + (-1) = (0000 0001) + (1111 1111) = 1 0000 0000

符號位進位,將進位捨去,則原式 = 0000 0000 即爲0.

 

發佈了4 篇原創文章 · 獲贊 2 · 訪問量 114
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章