当 X0 =1时,[X]反 =X0X1X2…Xn
(3)补码表示法(complement)
设计补码表示法的目的是:①使符号位能和有效数值部分一起参加数值运算从而简化运算规则,节省运算时间。②使减法运算转化成加法运算,从而进一步简化计算机中运算器的线路设计。计算机是一种有限字长的数字系统,因此都是有模运算,超过模的运算结果都将溢出。n位二进制整数的模是2 n 。
对于二进制数还有一种更加简单的方法由原码求得补码。①正数的补码表示与原码一样,[X] 补 =[X] 原
②负数的补码是将原码符号位保持“1”之后其余各位取相反的码,末位加1便得到补码,即取其原码的反码再加1∶[X] 补 =[X] 反 +1。
真值+0和-0的补码表示是一致的,但在原码和反码表示中具有不同的形式。8位补码机器数可以表示-128,但不存在+128的补码,由此可知8位二进制补码能表示数的范围是-128~+127。应该注意,不存在-128的8位原码和反码形式。
根据互补的概念,一个补码机器数再求一次补就得到机器数的原码了。定点数与浮点数:
(1)定点数(fixed-point number)
计算机处理的数据不仅有符号,而且大量的数带有小数,小数点不占有二进制位而是隐含有机器数里某固定位置上。通常采用两种简单的约定:一种是约定所有机器数的小数点位置隐含在机器数的最低位之后,叫定点纯整数机器数,简称定点整数。
另一种约定是所有机器数的小数点位置隐含在符号位之后、有效数值部分最高位之前,叫定点纯小数机器数,简称定点小数。
计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按比例因子缩小成定点小数或扩大成定点整数再参加运算,结果输出时再按比例折算成实际值。n位原码定点整数的表示范围是-(2 n-1 -1)≤X≤2 n-1 -1,n位原码定点小数的表示范围是-(1-2 -(n-1) )≤X≤1-2 -(n-1) 。当机器数小于定点数的最小值时,被当作0处理,超出定点数的最大值时,机器无法表达,称作“溢出”,此时机器将停止运算,屏幕显示溢出警告。
定点数表示方法简单直观,不过定点数表示数的范围小,不易选择合适的比例因子,运算过程容易产生溢出。