1、为什么要有补码?
用原码表示很直观,但是做运算时要判断符号,不方便
为了让计算机只需做一种运算,所以需要找到数的另一种表示方法。
2、补码从何而来?
思考一下,假如我们对一个整数数进行累加1,可以发现,个位数会周期性的变化,从0到9,再从9到0。也就是说,当我们不看高位的时候,累加1会使数突然变小,然后再重新变大。那么思考一下,如果我们人为地将0~4定为正数,即代表它原来的数,让5~9代表-5~-1,那么当该个位数为0时,我们想得到-4,就可以采取加6的方式得到了(上面已经知道,在我们的计数系统中6等于-4)!也就是说通过自定义数的表示,在通过MOD加法(可以视为无视高位的加法),就可以用加法表示减法了。我们的计算机系统也是这样做的,例如在一个8位的系统中,用00000000~01111111表示0~127的整数,再用11111111~10000000表示-1~-128的整数。