正数的补码与原码相同。负数的补码的符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。以补码定义式为基础,沿数轴列出典型的真值、原码与补码表示,可清楚了解补绝凳码的有关性质。
补码的优点:
补码系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补码来表示,因此只要有加法电路和补码电路即可以完成各种有符号数加法和减法,在电路设计上相当方便。
另外,补码系统的 0 就只有一个表示方式,这和反码系统不渣宏猛同(在反码系统中,0 有两种表示方式),因此在判断数字是否为 0 时,只要比较一次即可。下图是一些 8 位补码系统的整数,它可表示的范围包如桥括 -128 到 127,总共 256 个整数。
以上内容参考百度百科——补码
就比如-9补码是11110111。
9的源码为00001001,如果是负数的话,补码为最高位置1,其余取反也就是11110110,然后在最低位加1即可即11110111。
计算机中的负数是以其补码形式存在的补码=原码取反+1。
一个字节有8位可以表示的数值范围在-128到+127。用二进制表示也就是10000000-01111111(注意:最高位表示符号)。最高位是1的都是负数最高位是0的都是正数。
扩展资料:
补码乘法
补码的乘法不具备【X*Y】补=【X】补×【Y】补的性质。但是【X*Y】补==【X】补×Y,所得结果再取补码,如薯衫x=101,y=011,[x*y]补禅手卜=-[(-101)*011]=-[011*011]=-01001=10111。
其中,若【Y】补=y31y30……y0,则Y=-y31*2^31+y30*2^30+……+y0*2^0
原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为贺穗0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
补码是反码加1,把实际数据转换为2进制数据,然后把1变0,0变1,结果为反码。再加1就是补码。
如:10101010
反码为:01010101
补裤嫌码为:凳御01010110
也可以认为:从右到枣纯岩左第一个1为分界线,左边按位取反,右边(含本身)不变
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)