原碼、反碼和補碼都是計算機中常用的表示有符號整數(shù)的方式。
原碼:將一個有符號整數(shù)的符號位和數(shù)值位分開,數(shù)值位按照正常的二進制表示方法表示。例如,如果要表示-5,符號位為1,數(shù)值位為0101,那么它的原碼就是10101。
反碼:反碼是在原碼的基礎上,將正數(shù)保持不變,負數(shù)的數(shù)值位按位取反得到的結果。例如,-5的原碼是10101,那么它的反碼就是11010。
補碼:補碼是在反碼的基礎上,將負數(shù)的符號位不變,數(shù)值位加1得到的結果。例如,-5的反碼是11010,那么它的補碼就是11011。
下面以-5為例,介紹如何計算原碼、反碼和補碼:
原碼:符號位為1,數(shù)值位為0101,即10101。
反碼:符號位為1,數(shù)值位為1010,即11010。
補碼:符號位為1,數(shù)值位為1011,即11011。
對于正數(shù)來說,其原碼、反碼、補碼都相同,都是其二進制表示。而對于負數(shù)來說,其原碼、反碼、補碼是不同的,補碼是計算機中用來表示負數(shù)的標準方式,因為其可以避免出現(xiàn)0與-0兩種表示方式的情況。