计算机组成原理 第二章 数据的表示和运算 中
做而论道_CS: 计算机根本就不用原码和反码,只用补码。
所以,原码反码,都不需要讨论。
对补码的理解,也不用弄这么复杂。
所谓的补码,不过就是一个小学的知识点而已。
你看十进制,两位数:0~99。
可以有:27 + 99 = (一百) 26也可以:27 - 1 = 26如果你忽略进位,依旧保持两位数,这两种算法的功能,就是相同的。
即,当你舍弃了进位:正数,就可以当负数使用、用加法,就能实现减法运算。
在计算机中舍弃进位,会怎样?计算机中,就全是正数了。
没有了负数,减法也不存在了,减法器,当然也没用了。
计算机有一个加法器,就能横行天下!==================舍弃进位,就是补码的来历和存在意义。
==================在两位十进制时,舍弃进位,就是减去一百。
那么,加上 99,再减去 100,当然就是 “-1 ” 了。
八位二进制数是:0000 0000 ~ 1111 1111。
也就是十进制的:0 ~ 255。
如果出现进位,就是:2^8 = 256。
那么,加上 1111 1111 (255),再减 256,也就是-1。
由此,计算机专家就发明了:-1 的补码是 1111 1111。
同样,-2 的补码就是:1111 1110 (254)。
还有,-3 的补码就是:1111 1101 (253)。
最后,-128 的补码是:1000 0000 (128)。
转换公式:负数的补码 = 2^8 + 该负数。
同样还有:正数的补码 = 2^8 + 该正数。
但是,正数加上 256,就会出现进位。
那就舍弃吧。
于是就有:正数的补码 = 该正数。
这就证明了:零和正数的补码,就是其本身。
例:求-31 的补码是多少?解:256-31 = 225 = 1110 0001 (二进制)。
这不就完事了吗?哪里还用:机器数真值原码反码取反加一符号位不变模 ...老外脑子不够用,算术不灵,才 “发明” 了这许多的谎言。
谁要是跟老外学算术,立刻、马上,直接就掉沟里去了!
。