二補碼是什麼意思

在計算機科學中,二補碼(Two's complement)是一種用於表示有符號數字的系統,特別是在處理器中用於表示整數。在二補碼系統中,每個數字都有一個對應的補碼,這個補碼是由原始數字的位反轉(除了符號位之外)再加上1所得到的。

舉例來說,如果一個字長是8位元,那麼:

在二補碼系統中,0有兩種表示方式:

但是在實際的處理器運算中,只會使用正0,而負0則被視為一個誤差。

二補碼的好處是它可以簡單地通過異或(XOR)運算來實現加法和減法。例如,要計算兩個數字的和,可以將它們的二補碼進行異或運算,然後檢查結果是否超過了字長的表示範圍,如果超過了,則需要進行溢出處理。

此外,二補碼還有一個特性,那就是將一個數字轉換成它的補碼,再將其補碼轉換回來,得到的數字是原數字的相反數。這個特性可以用來實現乘法和除法運算。