正數原碼與反碼、補碼一致;
負數反碼是將其原碼除符號位之外的各位求反,補碼是將反碼加1。
所以4樓的解釋是有問題的。
-5的二進制的原碼是 1000 0000 0000 0101
                        反碼是 1111  1111 1111 1010
                        補碼是 1111 1111 1111  1011
----------------------------------------------------------------------------------------------
以下轉載,解釋有符號的數范圍為何是-(n+1)~n:
為什么要設立補碼呢? 
第一是為了能讓計算機執行減法: 
[a-b]補=a補+(-b)補 
第二個原因是為了統一正0和負0 
正零:00000000 
負零:10000000 
這兩個數其實都是0,但他們的原碼卻有不同的表示。 
但是他們的補碼是一樣的,都是00000000 
特別注意,如果+1之后有進位的,要一直往前進位,包括符號位。ㄟ@和反碼是不同的。 
[10000000]補 
=[10000000]反+1 
=11111111+1 
=(1)00000000 
=00000000(最高位溢出了,符號位變成了0) 
有人會問 
10000000這個補碼表示的哪個數的補碼呢? 
其實這是一個規定,這個數表示的是-128 
所以n位補碼能表示的范圍是 
-2^(n-1)到2^(n-1)-1 
比n位原碼能表示的數多一個