转自:https://www.zhihu.com/question/20159860
原码是为了方便人类识别数字,第一位表示符号位,后面表示真实的大小,但是计算机却不好计算,比如(+1)+(-1)应该是0,但是用原码的话只能计算出0001+1001 = 1010(-2),并且还会有+0和-0的问题,所以又引入了反码;
反码主要是用于限制负数的,符号位不变,其他位取反,解决了正负相加等于0的问题,但是2个0的问题没有解决,因此发明了补码;
补码就是在反码的基础上+1,所以对于原来的表示-0的1000,+1之后变成了10000,丢掉最高位就是0,同样正负相加为0的问题也被解决了,并且还得到了一位-8,能够表示的范围也更多了。
网友评论