1.1.3 数据表示
一、原码,反码,补码和移码
(1)原码
在原码表示法中,最高位是符号位,0表示正号,1表示负号,其余的位表示数值的绝对值。数值0的原码表示有两种形式:[+0]原=0 0000000,[-0]原=1 0000000。
(2)反码
在反码表示中,最高位是符号位,0表示正号,1表示负号,正数的反码和原码相同,负数的反码则是其绝对值按位求反。数值0的反码表示有两种形式:[+0]反=0 1111111,[-0]反=1 1111111。
(3)补码
在补码表示中,最高位是符号位,0表示正号,1表示负号,正数的补码与其原码的反码相同,负数的补码则等于其反码的末位加1。在补码表示中,0有唯一的编码:[+0]补=0 0000000,[-0]补=0 00000000。
(4)移码
实际上,在偏移2n-1的情况下,只要将补码的符号位取反便可获得相应的移码表示。
二、定点数和浮点数
(1)定点数。所谓定点数,就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。
(2)浮点数。当机器字节长为n时,定点数的补码和移码可表示2n个数,而其原码和反码只能表示2n-1个数(0的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超范围而溢出。浮点数是小数点位置不固定的数,它能表示更大范围的数。
(3)工业标准IEEE754。是由IEEE制定的有关浮点数的工业标准,被广泛采用。该标准的表示形式如下:(-1)S2E(b0b1b2b3…bp-1)
1.1.4 校验码
1.奇偶校验码
奇偶校验(Parity Codes) 是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而让码距变为2。
常用的奇偶校验码有3种:水平奇偶校验码,垂直奇偶校验码,水平垂直校验码。
2.海明码
是由贝尔实验室的Richard Hamming设计的,是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
3.循环冗余校验码(Cyclic Redundancy Check, CRC)
广泛应用于数据通信领域和磁介质存储系统中。