首先,在计算机中,正数、负数的表示的差异在于,最高位比特是0还是1
但是,负数在计算机中不仅将高位改为1,还将特定的补数标记法,即与正数相对应的原码反过来再加一个。
例如:
10的二进制表示形式为00001010
-10的二进制文件表示为00001010 - 11110101 - 11110110
如果想从负数变成正数的二进制数,也可以取反后再加1。 外观应该减少1再取反,但计算机只能加法。 另外,补数的优点是,再次进行补数运算可以得到原始代码。 类似于十进制负为正。
一个byte有8位,其最大可显示数在-128~127之间。 因为,除了最高位的标志位之外,能够最大显示的二进制数是01111111,能够最小显示的二进制数是10000000,其他也同样。 负数比正数多一个
为什么计算机使用这种补码方式来表示负数?
因为这样只表示计算机可以正常加减,所以计算机只能加法。 让我们来看看一些情况。
计算1-1对计算机来说就是1(-1 )
如果负数由原始代码表示:
计算结果为-2,明显错误
如果用补数表示负数:
结果是0是正确的
在二进制加减运算中,两个正数相加可能是负数