数学高手请进!补码!

来源:百度知道 编辑:UC知道 时间:2024/06/29 02:08:25
书上说八位二进制的范围是 127至-128,为什么负数下限是-128而不是-127 ?
书上说-128的补码是1000 0000 ,而在算补码是后面七位先取反后加一,所以如果要恢复到原码是后七位先减一后取反,但是-128的后七位都是零,怎么减一,如果要借位的话必须借最高位1,但是最高位1是符号位,不能借,

1000 0000表示的是 -1*1*2^7+0*(2^6+2^5+...+2^0)=-128
最大的正整数是0111 1111 表示的是-1*0*2^7+2^6+2^5+...+2^0=127
这么写明白了它是怎么表示的了吧

其实这是规定!
因为“-0”也是“0”,但根据正、反、补码体系,“-0”的补码和“+0”是不同的,这样就出现两个补码代表一个数值的情况。为了将补码与数字一一对应,所以人为规定“0”一律用“+0”代表。同时为了充分利用资源,就将原来本应该表示“-0”的补码规定为代表-128。
既然是人为规定,所以你是不能减一取反来求-128,一定要求的话结果也就是-0。
或者是这么求:1000 0000 =1111 1111 +1000 0001
=-127+(-1)