; 符号位数值化之后,为能方便的对机器数进行算术运算、提高运算速度,计算机设计了多种符号位与数值一起编码的方法,最常用的机器数表示方法有三种:原码、反码和补码。
(2)原码表示法和反码表示法
一个机器数X由符号位和有效数值两部分组成。设符号位为X 0 ,X真值的绝对值|X|=X 1 X 2 …X n ,X的机器数原码表示为:
[X]原 =X0X1X2…Xn
当 X≥0时,X0 =0
当 X<0时,X0 =1
原码表示很直观,但原码加减运算时符号位不能视同数值一样参加运算,运算规则复杂,运算时间 长,而计算机大量的数据处理工作是加减运算,原码表示就很不方便了。
一个负数的原码符号位不动,其余各位取相反码就是机器数的另一种表示形式———反码表示法。正数的反码与原码相同。
设[X]原 =X0X1X2…Xn
当 X0 =0时,[X]反 =X0X1X2…Xn
当 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位原码和反码形式。
上一篇文章:
下一篇文章: