`

计算机组成原理串讲 第二章 数据编码与运算

F# 
阅读更多

计算机组成原理串讲 第二章 数据编码与运算(一)

作者:不详 来源:希赛网  http://www.csai.cn  2006年4月28日

第一节 数据编码

一、定点数的编码

定点数
数值表示:(逢二进一)

x = x0x1x2…xn xi={0,1}, 0≤in
x02n + x12n-1 + … + xn-121 + xn
数值范围
0≤x≤2n+1-1
定点小数
数值表示
x = x0 . x1x2…xn xi={0,1}, 0≤in
x12-1 + … + xn-12-n+1 + xn2-n
数值范围
0≤x≤1-2-n
1. 原码表示法
定义(编码规则)
[x]原 = [x]原
数值(求值方法)
x = (-1)x0(x12n-1 + … xn-12 + xnx = (-1)x0(x12-1 + … xn-12-(n-1) + xn2-n
数值范围
-2n +1 ≤ x ≤ 2n -1 -1+2-nx≤ 1-2-n
简便编码方法:加符号位

表 带符号数的四种编码表示


x0x1x2x3

作为原码编码时代表的值

0000

0

0001

+1

0010

+2

0011

+3

0100

+4

0101

+5

0110

+6

0111

+7

1000

-0

1001

-1

1010

-2

1011

-3

1100

-4

1101

-5

1110

-6

1111

-7

在数轴上的表示:

2. 补码表示法
编码规则
[x]补 =
求值方法
x = -x02n + x12n-1 + … + xn-12 + xn
例如:10000100的真值为-128+4=-124
数值范围
-2nx ≤ 2n -1
简便方法1:正值直接取其原来的二进制码,对于负数是在对其按位取反之后再在最低位加1;
简便方法2:从最低位开始,对遇到的0和第一个1取其原码,从第一个1以后开始直到最高位均取其按位反码。
表 带符号数的四种编码表示


x0x1x2x3

原码

补码

0000

0

0

0001

+1

+1

0010

+2

+2

0011

+3

+3

0100

+4

+4

0101

+5

+5

0110

+6

+6

0111

+7

+7

1000

-0

-8

1001

-1

-7

1010

-2

-6

1011

-3

-5

1100

-4

-4

1101

-5

-3

1110

-6

-2

1111

-7

-1

在数轴上的表示:

模4补码
[x]补 =

 

3. 反码表示法
[x]反 =
x = -x0 (2n - 1) + x12n-1 + … + xn-12 + xn
-2n +1≤ x ≤ 2n -1
表 带符号数的四种编码表示


x0x1x2x3

原码

反码

补码

0000

0

0

0

0001

+1

+1

+1

0010

+2

+2

+2

0011

+3

+3

+3

0100

+4

+4

+4

0101

+5

+5

+5

0110

+6

+6

+6

0111

+7

+7

+7

1000

-0

-7

-8

1001

-1

-6

-7

1010

-2

-5

-6

1011

-3

-4

-5

1100

-4

-3

-4

1101

-5

-2

-3

1110

-6

-1

-2

1111

-7

-0

-1

在数轴上的表示:

4. 移码表示法
定义
[x]移 = 2n+x, -2nx < 2n
数值范围
-2nx ≤2n - 1
特点:保持了数据原有的大小顺序,便于进行比较操作。
表 带符号数的四种编码表示


x0x1x2x3

原码

反码

补码

移码

0000

0

0

0

-8

0001

+1

+1

+1

-7

0010

+2

+2

+2

-6

0011

+3

+3

+3

-5

0100

+4

+4

+4

-4

0101

+5

+5

+5

-3

0110

+6

+6

+6

-2

0111

+7

+7

+7

-1

1000

-0

-7

-8

0

1001

-1

-6

-7

1

1010

-2

-5

-6

2

1011

-3

-4

-5

3

1100

-4

-3

-4

4

1101

-5

-2

-3

5

1110

-6

-1

-2

6

1111

-7

-0

-1

7

在数轴上的表示:

定点小数没有移码定义
移码与补码的关系
编码表示的常见错误:编码与数值错位,编码带符号位,编码省略高位0

 

下一页

计算机组成原理串讲 第二章 数据编码与运算(二)

作者:不详 来源:希赛网  http://www.csai.cn  2006年4月28日

第一节 数据编码

二、浮点数的编码

构成:阶码E,尾数M,符号位S,基数R
N = (-1)S×M×RE


S

E

M

规格化:为了在尾数中表示最多的有效数据位,为了数据表示的唯一性。
E的编码:移码
M的编码:原码或补码(尾数为补码时的规格化要求)
R进制的含义:多个二进制位构成一组,代表一个R进制位(R为2的幂次)
机器零:尾数部分为0,特殊的数据编码(非规格)
浮点数的表示范围:
例:以R为基数,有p位阶码和m位二进制尾数代码的浮点数,阶码采用二进制正整数编码表示,求数值表示范围及可表示的数据个数。
解:最小规格化尾数:1/R
最大规格化尾数:1 - 2-m
最大阶码:2p - 1
最小阶码:0
最小值:1/R
最大值:
规格化尾数个数为2m×(R-1)/R
可表示的数据个数为2p+m(R-1)/R +1。
注:本例中没有符号位,也没有考虑阶码为负的情况。如果考虑这些因素就要考虑阶码和尾数的编码方式。
浮点数的溢出:

浮点数标准(IEEE754)
三种格式:短实数、长实数、临时实数
无定义数据:发信号的S,不发信号的Q
无穷大:+INF, -INF
规格化数:
(-1)s×1.f×2e-127
尾数为原码,阶码为特殊移码
非规格化数:(逐级下溢)
(-1)s×0.f×2e-126
数值范围:
IEEE754浮点数的范围如下表
表2-5 IEEE754浮点数的数值范围


格式

最小值

最大值

单精度

E=1, M=0, 1.0×21-127 = 2-126

E=254, f=.1111…, 1.111…1×2254-127 = 2127×(2-2-23)

双精度

E=1, M=0, 1.0×21-1023 =2-1022

E=2046, f=.1111…, 1.111…1×22046-1023 =21023×(2-2-52)

习题:15、16、19

三、检错码

数据校验码:分组码、卷积码
奇偶校验码
码距:两个合法代码对应位上编码不同的位数
奇偶校验码的原理:在编码中引入一定的冗余,增加代码的最小码距,使得编码中出现一个错误时就成为非法代码。

四、纠错码

线性码:任意两个合法码字求和可得到另一个合法码字。(奇偶校验码不是线性码)
海明码:
码长n=2m - 1
信息位数k=2m - m - 1
校验位数m= n - k
最小码距d = 3
例:
一种(7,4)海明码的定义为:
c1 = x1 + x2 + x3
c2 = x2 + x3 + x4
c3 = x1 + x2 + x4
将这些信息位和校验位构成码字w,即
w = {x1,x2,x3,x4,c1,c2,c3}={w1,w2,w3,w4,w5,w6,w7}。
校验方程:
w1 + w2 + w3 + w5 = 0
w2 + w3 + w4 +w6 = 0
w1 + w2 + w4 + w7 = 0
矩阵表示:
H×W = = 0
H称为校验矩阵。
校正子: S = H×Y = H (W+E) = H×E 其中Y为接收的码字
校正表:
表2-6 (7,4)海明码校正表


e1

e2

e3

e4

e5

e6

e7

s1

s2

s3

1

0

0

0

0

0

0

1

0

1

0

1

0

0

0

0

0

1

1

1

0

0

1

0

0

0

0

1

1

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

1

0

0

1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

循环码:线性码中若一个n位编码V = {v0,v1,v2,…,vn-1}是码C的一个码字,那么V向 右循环移动一位后的n位编码 V1 = {vn-1,v0,v1,…,vn-2}也是码C的一个码字。
码字多项式表示:
V(x) = vn-1xn-1 + … + v1x + v0
循环码的特性:生成多项式可整除循环码多项式。
编码方法一:给定一个码字,生成相同信息位循环码的方法(求余法)
= Q(x) +
xrB(x) = Q(x)G(x) + R(x)
等式两边加上R(x)
xrB(x) + R(x) = Q(x)G(x)
见教材的例子
编码方法二:给定全部代码,求循环码的方法(生成多项式法)
对四位信息码1010进行CRC编码,生成多项式是G(x) = x3 + x + 1。
:(1) 将4位信息码表示为多项式B(x):
B(x) = x3 + x
(2) 将信息码多项式与生成多项式相乘,得码字多项式:
V(x) = B(x)G(x) = (x3+x)(x3+x+1) = x6 + x3+x2+x
(3) 将码字多项式转换成代码表示,得CRC编码结果:
1001110
编码方法三:生成矩阵法

例:G(x) = x3 + x + 1,其生成矩阵是
G =

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics