原碼、反碼和補碼是計算機中用來表示帶符號整數(shù)的三種編碼方式。
1.原碼:將一個整數(shù)的符號位和數(shù)值部分分別表示出來,最高位表示符號位,0表示正數(shù),1表示負(fù)數(shù)。例如,+5的原碼為00000101,-5的原碼為10000101。
2.反碼:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為將原碼中除符號位以外的位取反。例如,+5的反碼為00000101,-5的反碼為11111010。
3.補碼:正數(shù)的補碼與原碼相同,負(fù)數(shù)的補碼為將原碼中除符號位以外的位取反后加1。例如,+5的補碼為00000101,-5的補碼為11111011。
在計算機中,使用補碼表示帶符號整數(shù)可以避免加法和減法的特殊處理,同時可以避免0的表示不唯一的問題,也方便進行位運算和二進制運算。