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