计算机存储数据是以补码形式存储。
如图
二进制中有符号数 如8位2进制256个数
从+127(即0111 1111原码)(0111 1111反码)(0111 1111补码) 此处如果继续数值+1会变成1000 0000即-128
到+1 (即0000 0001原码)(0000 0001反码)(0000 0001补码) 数值-1
到+0 (即0000 0000原码)(0000 0000反码)(0000 0000补码) 数值-1
到-1 (即1000 0001原码)(1111 1110反码)(1111 1111补码) 数值-1
到-2 (即1000 0010原码)(1111 1101反码)(1111 1110补码) 数值-1
到-127 (即1111 1111原码)(1000 0000反码)(1000 0001补码) 数值-1
到-128 (即 无法表示了原码)( 无法表示 反码)(1000 0000补码) 此处如果继续数值-1会变成0111 1111即+127
补码的使用从而解决了+0 -0的无意义重复问题。(原本原码1000 0000是-0,1000 0001是-1。。。1111 1111是-127,补码的使用令1000 0000由-0指定为-128)
这一指定是一位印度人指定的,好厉害。。。。