Page 38 - 江西普通高校专升本信息技术
P. 38
江西普通高校专升本信息技术
有符号整数的机器数编码可以采用三种:①原码;②反码;③补码。
(1)原码
原码编码方法为:最高位表示该数的符号位,0表示正数,1表示负数,其余各位表示该数的
二进制。以一个字节为例,数值转换为二进制后位数加符号位不足8位在符号位后补0。
例14.计算56和-56的原码编码结果。
(2)反码
反码编码方法为:①正数反码和原码一致;②负数方法为:符号位不变,符号位后面的二进
制位取反。
例15.计算56和-56的反码编码结果。
(3)补码
在讲述补码之前,先引入模的概念:把一个计量单位称之为模或模数。例如,时钟是以12
计量单位进行计数循环的,即以12为模。如果当前时钟为12点钟逆时针减10和0点钟顺时针加2的
结果一样,也就是12-10=0+2。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个
模数为12的循环系统来说,减10和加2的效果是一样的。因此,可以得出在以12为模的系统中,
凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了。10和2对模12而言互为
补数。
同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为8),因此它的运算也
是一种模运算。当计数器计满8位也就是256后会产生溢出,又从头开始计数。产生溢出的量就是
8
计算器的模,显然,8位二进制数,它的模数为2 =256。因此定义在计算中,两个互补的数称为
“补码”。
补码的编码方法:①正数补码和原码一致;②负数方法为:符号位不变,反码加1。
例16.计算56和-56的补码编码结果。
如果计算机用原码运算结果有时是错误的,例如:用原码计算-1+1的过程为:[10000001] 原 +
[00000001] 原 =[10000010] 原 =(-2) 10 ,实际上结果应该是0;再例如0的原码结果有两个:
[+0] 原 =00000000,[-0] 原 =10000000。实际上,多数计算机系统采用的都是补码保存有符号整数,因
为使用补码,有两个好处:可以将符号位和其他二进制位统一处理;减法运算也可以用加法计算
结果,节省了运算器的成本。
·16·