您的位置:首页 > 理论基础

计算机组成原理知识总结-数据信息表示

2020-04-25 08:49 633 查看

计算机组成原理

数据信息表示

2.1 带符号数-机器数与真值

  1. 原码表示:x = -0101,[x]原 = 1101
    原码直观、方便、简单;不便于实现加减运算;0在原码中有两种表示形式。
  2. 补码表示:x = -0101,[x]补 = 1011
    补码的符号可以看做是数值计算的一部分;补码中0只有一种表示形式
  3. 反码表示:x = -0101,[x]反 = 1010
    符号位表示正负;纯小数的反码不能表示-1;纯整数反码不能表示-2^n;0在反码中有两种表示方式
  4. 移码表示:x = -0101,[x]移 = 2n + x = 0011
    符号位表示正负,1正0负;0只有一种表示形式;移码与补码的表示范围相同,纯小数移码可以表示到-1,纯整数移码可以表示到-2n;真值大移码也大,真值小移码也小

2.2 定点数浮点数

计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。所谓定点数和浮点数,是指在计算机中一个数的小数点的位置是固定的还是浮动的:如果一个数中小数点的位置是固定的,则为定点数;如果一个数中小数点的位置是浮动的,则为浮点数。

2.2.1 定点数

(1)无符号定点整数(Unsigned fixed point integer)
定义:无符号定点整数没有符号位,所以它的全部数位都用来表示数字,且它的小数点隐含在最低位后,在数码序列中并不存在
1.表示范围:这种方法表示数的大小(正负方向),无符号定点整数范围:0~2n-1
2.分辨率:精度,1(即最小非零整数)
代码序列: XnXn-1Xn-2……X1X0表示无符号定点整数,则有n+1位正整数

典型值 真值 代码序列
最大正整数 2n+1-1 11…11
最小非零正数 1 00…01

(2)带符号定点整数
定义:带符号定点整数是纯整数,小数点在最低位之后,最高位为符号位。常用补码表示,也用原码表示。
代码序列: XnXn-1Xn-2……X1X0表示带符号定点整数,Xn是符号位
原码定点整数表示范围:-(2n-1)~(2n-1)
补码定点整数表示范围:-2n~(2n-1)
源码,补码定点整数分辨率:1

(3)带符号定点小数
定义:带符号定点小数是纯小数
代码序列:X0.X1…Xn
最高位X0是符号位,小数点位置在符号位之后,X1…Xn是数值的有效部分,常称尾数,X1称为最高数位或最高有效位
原码定点整数表示范围:-(1-2n)~(1-2n)
补码定点整数表示范围:-1~(1-2n)

2.2.2 浮点数

N = M*R^E

其中,N为浮点数,M为尾数(mantissa),E为阶码(exponent),R为阶的基数。在一台计算机中基数是确定且相同的,一般为2、8、16。

Ms E M
占位数 1 n+1 m

Ms是符号位,设置在最高位上;
E是阶码,有n+1位,一般为整数,其中E的最高位是E的符号位,用来表示阶数E的正负;
M是尾数,有m位,Ms与M组成一个定点小数。

IEEE754标准

x = (-1) s x(1.M)x 2(E-127)
e = E - 127

x = (-1) s x(1.M)x 2(E-1023)
e = E - 1023

尾数位数决定了数据表示的精度;阶码的位数决定了数据表示范围。

2.3 数据校验码

码距:两个编码之间代码不同的位数称为这两个编码的距离。

  • d>=e+1 可校验e个错误
  • d>=2t+1 可纠正t个错误
  • d>=e+t+1 可校验e个错误,纠正t个错误

循环冗余校验(CRC)

定义:收发双方约定的一个(r+1)位二进制数,发送方利用G(X)对信息多项式做模2除运算,生成校验码。接收方利用G(X)对收到的编码多项式做模2除运算检测差错及错误定位。

满足条件:
  1. 最高位和最低位必须为1;
  2. 当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0;
  3. 不同位发生错误时,模2除运算后余数不同;
  4. 对不为0余数继续进行模2除运算应使余数循环。
得到生成多项式

从最高幂位开始降位,有就为1,没有就是0

例题

(1)将4位有效信息1001编成循环校验码,选择生成多项式x3+x1+x0,试写出编码过程

1.根据生成多项式,得到G(x)=1011

2.有效信息为4位,k=4,代入公式k+r≤2r-1,得到r≥3

3.首先临时在有效信息1001后面添加r位0的冗余码,即1001000,计算1001000/1011,得到余数110

4.将余数替换有效信息后面的冗余码,变为1001110
A7A6A5A4A3A2A1
(2)根据上题,在传输数据得到的是1001111,除以G(x),得到余数101,就是第一位错

海明码

定义:海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大吗距来实现检错和纠错。

对于数据位m的数据,加入k位的校验码,它应满足香农第二定理:n=m+k ≤ 2k-1

说明:这里的m是指我们待编有效信息的位数,例如01101001就是m=8,然后代入m,8+k ≤2k-1得到m=6,k≥4(取最小值),这样组成12位海明校验码。

(1)确定数据位D和校验位P在海明码中的位置:由海明码编码规则可知: pi在海明码的第2i-1

海明码H 1 2 3 4 5 6 7 8 9 10 11 12
校验位 P1 P2 P3 P4
数据位 D0 D1 D2 D3 D4 D5 D6 D7

(2)确定校验关系:例如(P1,P2,P3,P4)来表示3,这里3就可以等于1+2。

(3)校验组

P1=D0⊕D1⊕D3⊕D4⊕D6=0⊕1⊕0⊕1⊕0=0
P2=D0⊕D2⊕D3⊕D5⊕D6=0⊕1⊕0⊕0⊕0=1
P3=D1⊕D2⊕D3⊕D7=1⊕1⊕0⊕1=1
P4=D4⊕D5⊕D6⊕D7=1⊕0⊕0⊕1=0

(4)设置指错字G4G3G2G1

G4=P4⊕D4⊕D5⊕D6⊕D7
G3=P3⊕D1⊕D2⊕D3⊕D7
G2=P2⊕D0⊕D2⊕D3⊕D5⊕D6
G1=P1⊕D1⊕D3⊕D4⊕D6

G4G3G2G1=0000,则数据无错
G4G3G2G1组成的二进制数为:1100,也就是12,说明第12位出现的错误

(5)海明校验缺点:仅能校验一位错

奇偶校验码

不管是奇校验还是偶校验,监督位都在数据的后面,而且仅一位。

  • 奇校验,要保证插入监督码后”1“的个数为奇数,其中数据位是不变的,所以监督位置1或0;也就是说,若数据位中”1“的个数是偶数,则监督位为1;若数据位中”1“的个数是奇数,则监督位为0。

  • 偶校验,要保证插入监督码后”1“的个数为偶数,其中数据位是不变的,所以监督位置1或0;也就是说,若数据位中”1“的个数是偶数的话,则监督位为0;若数据位中”1“的个数是奇数,则监督位为1。

奇偶校验只能发现单个或者奇数个错误,而不能校测出偶数个错误,因而它的校错能力不强

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Nick_cloud 发布了7 篇原创文章 · 获赞 0 · 访问量 243 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: