天天看點

為什麼使用補碼?

文章目錄

  • ​​補碼(Two's complement)是什麼​​
  • ​​對負數求二進制補碼的一般過程​​
  • ​​為什麼使用補碼​​
  • ​​拓展閱讀​​

補碼(Two’s complement)是什麼

大多數計算機使用補碼來表示負數。這種方法在執行數學運算(如加法和減法)時更有效。

位的最左邊叫最高有效位 (the most significant bit or MSB) : 用于訓示正​​數或負數,其餘位用于存儲數字的實際大小。正數總是以 0 開頭。

四位正數的補碼數為 0000 = 0、0001 = 1~ 0111 = 7。最小的正數是最小的二進制能表示的值。

負數總是以 1 開頭。最小的負數是最大的二進制值。1111 是 -1,1110 是 -2,1101 是 -3,直到 1000 代表 -8。

對負數求二進制補碼的一般過程

  1. 找到要表示的負數的正二進制值。
  2. 在數字前面加一個 0,表示它是正數。
  3. 取反
  4. 将此數字加 1。

使用二進制補碼求 -1

1 = 001

前面加0變成0001

取反 變成1110

加 1 = 1111 ( -8 + 4 + 2 + 1 = -1 )

或者:

2^8 - 1 = 10000 - 1 = 1111

使用二進制補碼求 -4

4 = 100

前面加0變成0100

“倒置”變成1011

加 1 = 1100 ( -8 + 4 = -4 )

或者:

2^4 - 4 = 10000 - 0100 = 1100

為什麼使用補碼

因為使用補碼,可以把減法改成加法。實際電路中,隻有加法器。

為什麼使用補碼?

拓展閱讀

繼續閱讀