求反加一,误了多少人!
楼主从补码的定义来想想,补码是1000,0000的真值是多少?
从真值,再求原码,很简单的.
---------
0-1=1是.可是0的前面没有数字了,向谁借呢?
在计算机里面,有地方借,就是令Cy=1,标志着发生过借位.
日常生活中,也有这种事,如贷款买房,仅有10W,却买到100W的房子,银行里面有记录.八位二进制的原码最小可以表示-127,但补码最小可以表示-128,这怎么解释?像你说的一样补码1000,0000的真值是-128,再求-128的原码,这怎么求嘛?原码,本身就是不完善的,一个真值0,原码却要用两个码字表示。256个原码,仅仅可以表示255个真值:-127~+127。补码,是完善的,它可以表示-128~+127,共256个真值。所以,计算机里面,都是使用补码。8位数的原码,不能表示-128,那就别求它了。不求-128的原码,那就求1000,0000的原码是多少?想求1000,0000的原码,就要先说明1000,0000是什么码。如果它是补码,它的真值就是-128,那就求不出来原码了,原因,前面已经说了。---------128,只有补码,没有原码和反码。-128,只有补码:1000,0000,从这个数字,是求不出来原码和反码的。-128的补码,根本就不是用原码再“求反加一”这个方法得来的。所以,楼主一开始,就说:“我求原码的过程如下:先求反码得到.....”,最终的结果不合情理,原因就是:1000,0000(-128),它根本就没有原码和反码。补码1000,0000的真值是-128,那么这个-128是怎样算出的嘛?按照补码的定义式,反推一下,就出来了。补码的定义式,任何讲补码的书,里面都有,但是几乎所有的书,都是先讲““求反加一””。先讲求反加一,就掩盖了补码的真实含义,现在弄的很多人都是基本概念不清楚。