原碼、反碼和補碼是計算機中表示帶符號整數的三種編碼方法。它們的區別如下:
原碼(Sign-Magnitude Representation)。這是最直接的表示方式,其中最高位表示符號(0表示正數,1表示負數),其餘位表示數值的絕對值,優點是表示直觀,但進行加法和減法運算時存在問題。
反碼(One's Complement)。針對原碼在加法和減法運算上的問題而引入,正數的反碼與其原碼相同,負數的反碼是對其原碼的每位取反(0變1,1變0),雖然解決了加法問題,但仍存在溢出和零的表示問題。
補碼(Two's Complement)。爲徹底解決加法和表示問題而引入,正數的補碼與其原碼相同,負數的補碼是在其原碼取反後加1,補碼錶示不僅解決了加法和表示問題,還能自然地處理溢出,在大多數計算機體系結構中,補碼錶示被廣泛採用用於帶符號整數的表示和運算。