计算机组成原理 The Principle of Computer

Slides:



Advertisements
Similar presentations
汇编语言 程序设计 第 1 章 基础知识 第 1 章 基础知识 ◆ 汇编语言程序设计概述 ◆ 进位计数制及其相互转换 ◆ 计算机中数的表示 ◆ 计算机中字符的表示 汇编语言程序设计概述 进位计数制及其相互转换 计算机中数的表示 计算机中字符的表示.
Advertisements

1 1.2 信息的表示与存储  数据:数据是对客观事物的符号表示。 如,数值、文字、语言、图形、图像等都是不同形 式的数据。  信息:信息是既是对客观事物变化和特征的反映,又 是事物之间相互作用、相互联系的表征。 信息必须数字化编码,才能用计算机进行传送、存 储和处理。 信息具有针对性和时效性。
1.3 二项式定理. [ 题后感悟 ] 方法二较为简单,在展开二项式之前根据二项 式的结构特征进行适当变形,可使展开多项式的过程简化.记 准、记熟二项式 (a + b) n 的展开式,是解答好与二项式定理有关 问题的前提,对较复杂的二项式,有时可先化简再展开,会更 简便.
计算机应用基础 江西财经大学信息管理学院 凌传繁
第1章 预备知识(数制与码制) 1.1 进位计数制及各计数制间的转换 1.2 二进制数的运算
第6章 无线寻呼系统 6.1 概述 6.2 无线寻呼网的结构及其系统组成 *6.3 寻呼信号及其编码 *6.4 寻呼接收机.
第一章 计算机基础
第2章 數位資料表示法 2-1 資料型態 2-2 二進位表示法 2-3 各種進位表示法的轉換 2-4 整數表示法 2-5 浮點數表示法
大学计算机基础 山东大学计算机学院 张鹏 高等学校计算机公共教学改革与实践 大学计算机基础 山东大学计算机学院 张鹏
第六章 其他税收法律制度.
“国培计划(2015)”——吉林省农村 幼儿园教师信息技术应用提升培训
汉字编码 汉字编码.
5.1 文本与文本处理 5.2 图像与图形 5.3 数字声音及应用 5.4 数字视频及应用
1.6 中国人口迁移.
補救教學實施策略 國立新竹教育大學 高淑芳.
課程名稱:計算機概論 授課老師:李春雄 博士

计算机应用基础 计算机基础知识.
大学计算机应用基础 信息工程学院 吴 杰 学年第一学期.
欢迎大家来到生命科学课堂.
大学计算机-计算思维导论 哈尔滨工业大学.
清仓处理 跳楼价 满200返160 5折酬宾.
——开启你计算机网络之门的金钥匙 图书作者:王达 制作
2.3 信息表示与编码 所谓编码,就是利用数字串来标识所处理对象的不同个体。
1.1.2 四 种 命 题.
第二章 數字系統:電腦內部的資料表示法 在第一章中,我們對於電腦有了初步的認識,在深入介紹電腦的各項組成元件之前,首先我們必須先了解另一種不同於人類使用習慣的二進位表示法,由於電腦的半導體、磁性、光學元件適合用來表示二進位,因此二進位表示法非常適合用來設計電腦。
计算机文化基础教程(第二版)(Windows XP + Office 2003)
专题二 识图题增分技巧.
1.5 地球运动的地理意义(一) 自 转意义 一、昼夜交替 昼夜现象 1、昼夜更替 周期是24小时(1太阳日) 地球是一个不发光
>> 第三章 中文Windows XP >> 第四章 中文文字处理系统Word 2003
单片机原理与应用.
北师大版七年级数学 5.5 应用一元一次方程 ——“希望工程”义演 枣庄市第三十四中学 曹馨.
动物激素的调节及其在农业生产中的应用(B级)
第一章 信息技术与 计算机文化 潍坊医学院 第一章信息技术与计算机文化.
第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示.
數字系統與資料表示法 電腦的基本單位 數字系統 數值資料表示法 數值資料與算數運算 數碼系統 浮點數表示法 文字表示法 資料來源:周裕達教授.
数字电路与逻辑设计 任课教师:刘毅 博士/副教授 单位:西安电子科技大学ISN国家重点实验室
資料表示法與數字系統 主講:顧叔財 資料來源: 計算機概論.
A3-1 數字系統 A3-2 資料表示法 A3-3 資料的儲存
计算机文化基础 第一章 计算机的基础知识.
远 动 监 控 技 术 西南交通大学电气工程学院.
4.1 概述 4.2 主存储器 4.3 高速缓冲存储器 4.4 辅助存储器.
第1章 微型计算机基础知识 【本章重点】微型计算机的组成和各部分的作 用,以及计算机中数的表示方法。
文字資料表示法 & 布林代數與數位邏輯.
Chapter Four 数据链路层.
數位邏輯與實習 曾建勳 Week 2.
微机原理电子教案 微机原理电子教案.
6-1 資料表示法簡介 6-2 數值表示法 6-3 數字系統介紹 6-4 數字系統轉換方式
Chapter 3 数据链路层.
单片机原理与应用 Principles and Application of Microcontroller
第一章 微型计算机基础知识.
计算机原理及系统结构 第六讲 主讲教师:赵宏伟                 学时:64.
第 5 讲 数据链路层(1) 1/31.
第1章 数制与编码 1.1 数制 1.2 编码.
1.6 差错控制 差错类型及基本控制方法 噪声引入的随机误码,均匀分布 由干扰、快衰落引起的突发误码 单比特错误 多比特错误
第 2 章 计算机中的信息表示 学习目标: 掌握常用的进位计数制及其相互转换方法。 掌握原码、补码的表示方法及其相互转换,了解反码表示方法。
数字电子技术 Digital Electronics Technology
數字系統 資訊工程系 國立清華大學資訊基礎教育 教學改進計畫 數字系統 資訊工程系 /4/22.
數位邏輯設計與實習 主講者:杜勇進.
结束 放映 1.1 数制及编码 数制及其转换 编码 返回 2019/5/1.
数字电子技术 电子教案 章洁.
第1章 数制与编码 1.1 数制 1.2 编码.
第六章 静定桁架的内力分析.
2019年5月1日星期三 离散  数学 计算机学院 冯伟森 2019年5月1日星期三.
第四章 图元的属性.
1.理解力和运动的关系,知道物体的运动不需要力来维持。
第一章 数字逻辑基础 1.1 模拟信号与数字信号 1.2 数字电路 1.3 数制 1.4 二进制编码.
第二章 计算机中的信息表示.
单片机原理及接口技术 前修课程:数模电、微机原理.
3.4 链路控制协议示例 一.面向字符的控制规程-- BSC
Presentation transcript:

计算机组成原理 The Principle of Computer 主讲 陈付龙 西北工业大学计算机学院 (2007年9月)

第2章 计算机中的数据信息的表示 2.1 进位计数制与数制转换 2.2 带符号数的表示 2.3 数的定点表示和浮点表示 2.4 非数值型数据的表示 2.5 十进制数串的表示 2.6 数据校验码 计算机组成原理 西北工业大学计算机学院

2.1 进位计数制与数制转换

1 常用数制 (1)数值的构成 基数:相邻位权之比 位权:基数的 i 次方 ( i 为与位置对应的自然数) 1 常用数制 (1)数值的构成 一个数值各位数字(数码)表示的值不仅与该数字有关,且与所在位置有关。 【例】数32343.43可以分解为: 3×104+2×103+3×102+4×101+3×100+4×10 -1+3×10 -2 位权 基数:相邻位权之比 位权:基数的 i 次方 ( i 为与位置对应的自然数) 每个数位上的数字所表示的值=该数码×位权 计算机组成原理 西北工业大学计算机学院

(2)R进制 xnxn-1…x0.x-1x-2…x-m =xn*Rn+xn-1*Rn-1+…+x0*R0+x-1*R-1+x-2*R-2+…+x-m*R-m 小数点右移n 位——相当于乘以R n(增加R n 倍) 小数点左移n 位——相当于除以R n (为R n 份之一) 思考: m位R进制数,其最大数值是多少?最小数值是多少? 计算机组成原理 西北工业大学计算机学院

(3)常用数制 十进制 二进制 八进制 十六进制 R进制 基数 10 2 8 16 R 进位 逢10进1 逢2进1 逢8进1 逢16进1 可用 数码 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 ABCDEF 0…R-1 计算机组成原理 西北工业大学计算机学院

2 R进制数转换为十进制数 ② (11011011)2 (219)16 (210)8 (219)10 简便算法: 位权展开法 1 1 0 1 1 0 1 1 128 64 32 16 8 4 2 1 计算: 128+64+16+8+2+1= 219 位权展开法 【例一】将下列数值转换为十进制数 (101.01)2 (205.4)8 (AF.8)16 解: (101.01)2= 1×22+0×21+1×20+0×2 -1+1×2-2 =(5.25)10 (205.4)8= 2×82+0×81+5×8 0+4×8 –1 =(133. 5)10 (AF.8)16= 10×16 1 +15×160+8×16 -1 =(175. 5)10 【思考】以下数值中最大的和最小的分别是哪个? ① (1234)8 (1234)16 (1234)5 (1234)10   ② (11011011)2 (219)16 (210)8 (219)10 计算机组成原理 西北工业大学计算机学院

3 十进制数转换为R进制数 将整数部份和小数部份分开来算,位权展开法 整数部份:除以R取余数,直到商为0,余数从自下而上排列 到小数部份为0或规定精度为止 【例】将(100.345)10 转换为二、八、十六进制 2 100 低位 2 50 0 8 100 0.345 2 25 0 8 12 4 ×  2 高位 2 12 1 8 1 4 0.690 2 6 0 0 1 × 2 2 3 0 1.380 2 1 1 16 100 × 2 0 1 16 6 4 0.760 高位 0 6 × 2 1.520                     × 2      …… 低位 结果: (100.345)10 ≈(1100100。0101)2 (100)10= (144)8 = (64)16 计算机组成原理 西北工业大学计算机学院

4 八、十六进制与二进制相互转换 法则:以小数点为界,每个八进制数对应三位二进制数,每个十六进制数对应四位二进制数。 4 八、十六进制与二进制相互转换 法则:以小数点为界,每个八进制数对应三位二进制数,每个十六进制数对应四位二进制数。 【注意】小数部分不足之处应补零 记住—— 8 4 2 1 1 1 1 1 【例】 (2C1.D)16=(0010 1100 0001. 1101)2 2 C 1 D 【例】 (71.23)8=( 111 001 . 010 011)2 7 1 2 3 【例】 ( 11 0110 1110 . 1101 01)2 = (36E.D4)16 3 6 E D 4 01应补00为0100 计算机组成原理 西北工业大学计算机学院

2-8进制转换 2 000 001 010 011 100 101 110 111 8 1 3 4 5 6 7 2-16进制转换 2 0000 0001 0010 0011 0100 0101 0110 0111 8 1 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 9 A B C D E F 计算机组成原理 西北工业大学计算机学院

5 二进制数的简单运算 (1)算术运算(加减乘除) 加法:逢2进1 0+0=0 0+1=1 1+0=1 1+1=10 (进位) 5 二进制数的简单运算 (1)算术运算(加减乘除) 加法:逢2进1 0+0=0 0+1=1 1+0=1 1+1=10 (进位) 减法:借1当2 0-0=0 1-0=1 1-1=0 0-1=1(借位) 乘法:加法+移位 0 * 0=0 0*1=0 1*0=0 1*1=1 除法:减法+移位 0÷1=0 1÷1=1 例三 1110 × 101 1000110 例四 110 10 1100 10 100 例一 1101 + 101 10010 例二 1011 - 101  110 计算机组成原理 西北工业大学计算机学院

5 二进制数的简单运算(续) (2)逻辑运算 与运算:都是1时才为1,运算符:A∧B 、A×B 或 A·B 例:设A=1101,B=1001,求:A∧B 、 A∨B、A B、A 例一 A∧B 1101 ∧ 1001 1001 例二 A∨B 1101 ∨ 1001 例三 A∞B 1101 1011 0110 例四 A A=0010 计算机组成原理 西北工业大学计算机学院

2.2 带符号数的表示

一个数的表示方法,也就是它们在计算机中的组成格式和编码规则。 当一个数送入计算机进行运算处理时,首先将其转换为二进制数,同时还要解决以下几个问题: 1.怎样表示数的符号 2.怎样确定小数点的位置 计算机组成原理 西北工业大学计算机学院

2.2.1 机器数和真值 机器数是指数在计算机中的表示形式,一般是采用某种编码形式表示带符号的二进制数。 真值是指机器数所对应的实际数值。 一般机器数有如下特点: (1)数的符号采用二进制代码化,0代表“+”,1代表“-”。通常将符号的代码放在数据的最高位 (2)小数点本身是隐含的,不占用存储空间 (3)每个机器数据所占的二进制位受机器硬件规模的限制,与机器字长有关,超过机器字长的数值要舍去 计算机组成原理 西北工业大学计算机学院

2.2.2 机器数的原码表示法 1、规则:机器数的最高一位表示符号,“0”表示正号;“1”表示负号,后面各位用数的绝对值表示。 2、定义: 小数原码的定义为: 整数原码的定义为: [X]原 = [X]原 = [X]原为机器数的原码,X为真值。   【例】求X=0.1011和X=-0.1011的原码 X=0.1011时, [X]原 = 0.1011 X=-0.1011时, [X]原 = 1 - (-0.1011) = 1.1011 计算机组成原理 西北工业大学计算机学院

(1) 原码的最高位表示数的符号,0表示正号,1表示负号。 3、性质: (1) 原码的最高位表示数的符号,0表示正号,1表示负号。 假设小数X的原码为:[X]原 = XS.Xn-1Xn-2…X2X1X0,Xs是符号位,可用下式来表示一个数的原码: [X]原 = Xs + |X| (2) 对于定点小数,把Xs作为数值位看待时,其位权为1,则有: 当Xs=0时,1>[X]原≥0,故1>X=[X]原≥0; 当Xs=1时,2>[X]原≥1,故0≥1-[X]原>-1 即 2>[X]原≥0,其范围是:0~2-2-(n-1),真值为1>X>-1,其范围是:-(1-2-(n-1))~+(1-2-(n-1))。 (3)0不唯一 定点小数 [+0]原 = 0.0…0 [-0]原 = 1.0…0 整数 [+0]原 = 00…0 [-0]原 = 10…0 计算机组成原理 西北工业大学计算机学院

2.2.3 机器数的补码表示法 1. 补码的定义 整数补码定义: [X]补 = [X]补为整数X的补码,X为任意整数,n为整数的位数。 [X]补=2n+1+X=24+1+ X =100000-1011=10101  小数补码定义: [X]补= [X]补是小数X的补码,X为任意小数,2为模数。小数的补码就是模为2 的补码。 计算机组成原理 西北工业大学计算机学院

[-0]补= 2n+1-00…0 = 2n+1=00…0 (mod 2n+1) 小数0 [+0]补= 0.00…0 2.补码的性质 (1) 在补码表示法中,0的补码是唯一的,即 整数0 [+0]补= 00…0 [-0]补= 2n+1-00…0 = 2n+1=00…0 (mod 2n+1) 小数0 [+0]补= 0.00…0 [-0]补= 2-0.00…0 = 2 =0.00…0 (mod 2) (2) 假设一整数X的补码表示为:[X]补=XSXn-1Xn-2…X1X0,XS是补码的符号位,标志整数X的符号,XS=0时,X为正数;XS=1时,X为负数。 (3) 补码的表示范围是: 正整数 2n>X≥0 负整数 0≥X≥-2n 负数的范围比正数范围大,即多表示一个数-2n。 当X=-2n时,它的补码为: [X]补 = [-2n]补 = 2n+1 -2n = 2n = 100…0 计算机组成原理 西北工业大学计算机学院

[X]补 = 2n+1·XS + X 这里XS为符号, XS= 这是因为X为正时,XS=0,[X]补 = 2n+1·0 + X = X ;X为负时,XS=1,[X]补 = 2n+1·1 + X = 2n+1 + X,符合补码的定义。 (5) 补码与真值的关系 设[X]补=XSXn-1Xn-2…X1X0,由性质4可知,[X]补 = 2n+1·XS + X,可以证明 X = [X]补 - 2n+1·XS = -2n·Xs + Xn-1Xn-2…X1X0 反过来,若X = -2n·XS + Xn-1Xn-2…X1X0, 则 [X]补 = 2n+1·XS + X = XSXn-1Xn-2…X1X0 (6)补码的一项算术运算特性 [X/2]补是把[X]补中各位连同符号位一起都右移一位,符号位保持不变。 计算机组成原理 西北工业大学计算机学院

3. 补码的求法 当0≥X≥-2n时,数X的补码是:符号位为1,数值位是其真值X的数值位取反加1。也可由X的原码[X]原求得补码[X]补:[X]补等于[X]原除符号位外求反加1。反过来可由X的补码[X]补求得原码[X]原:[X]原等于[X]补除符号位外求反加1。 当X为小数时,若X为负数,则X的补码是:符号位为1,数值位是其真值X 的数值位取反末位加1。也可由X的原码[X]原求得补码[X]补:[X]补等于[X]原除符号位外求反末位加1。反过来可由X的补码[X]补求得原码[X]原:[X]原等于[X]补除符号位外求反末位加1。 计算机组成原理 西北工业大学计算机学院

假设[X]补=XSXn-1Xn-2…X1X0,可由[X]补按下式求得[-X]补 [-X]补 = + 1 [X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补 假设[X]补=XSXn-1Xn-2…X1X0,可由[X]补按下式求得[-X]补 [-X]补 = + 1 把对[X]补连同符号位在内的各位求反运算称为对[X]补“求反”运算,记为~[X]补。这样对[X]补的“求补”运算可看成对[X]补“求反”运算再加1:[-X]补=~[X] 补 + 1,且两者有以下关系: [X]补 + ~[X]补 = 2n+1 - 1 = 11…1(n个1) 计算机组成原理 西北工业大学计算机学院

(1)在补码表示中,用符号位X0表示数值的正负:0正1负 (2)在补码表示中,数值0只有一种表示方法,即00…0 5. 补码的特点 (1)在补码表示中,用符号位X0表示数值的正负:0正1负 (2)在补码表示中,数值0只有一种表示方法,即00…0 (3)负数补码表示范围比正数要宽 (4)通过补码,减法可以转换为加法 计算机组成原理 西北工业大学计算机学院

若[X]补=XSXn-1Xn-2…X1X0为8位,需要扩展为16位时,要按下面的规则进行扩展: 6. 补码的符号位扩展 若[X]补=XSXn-1Xn-2…X1X0为8位,需要扩展为16位时,要按下面的规则进行扩展: 用符号位XS填满扩展的高8位,若X>0,XS=0,扩展后高8位全为0,低8 位包括符号位仍为原来的数码位。 若X<0,XS=1,扩展后高8位全为1,低8位包括符号位仍为原来的数码位。 计算机组成原理 西北工业大学计算机学院

2.2.4 机器数的反码表示法 1、定义: 小数反码的数学定义为: [X]反 = 【例】X=1011 则[X]反=01011 计算机组成原理 西北工业大学计算机学院

[-0]反= (2n+1-1) + (-00…0) = 2n+1 - 1 =11…1 (mod 2n+1-1 ) 2、性质: (1) 在反码表示法中,0的反码不是唯一的, 整数0 [+0]反= 00…0 [-0]反= (2n+1-1) + (-00…0) = 2n+1 - 1 =11…1 (mod 2n+1-1 ) 小数0 [+0]反= 0.00…0 [-0]反= 2 - 2-n - 0.00…0 = 1.1…1 (mod 2-2-n) (2) 假设一整数X的反码表示为:[X]反=XSXn-1Xn-2…X1X0,XS是反码的符号位,它标志整数X的符号,XS=0时,X为正数;XS=1时,X为负数。 (3) 反码与补码的关系 根据补码和反码的定义,当X为正数时,[X]补 = [X]反; 当X为负整数时, [X]补 = [X]反 + 1 ; 当X为n位负小数时, [X]补 = [X]反 + 2-n 计算机组成原理 西北工业大学计算机学院

2.2.5 机器数的移(增)码表示法 1、定义: 整数[X]移 = 2n + X 2n>X≥-2n 小数[X]移 = 1 + X 1>X≥-1 即无论X是正还是负,一律加上2n,称2n为基数。 2、移码与补码的关系是:真值是正数时,移码是补码的最高位加1;真值是负数时,移码是补码的最高位减1。也就是把补码的符号位变为其反码即可。即 若 [X]补=XSXn-1Xn-2…X1X0, 则 [X]移=XSXn-1Xn-2…X1X0  【例】X=1001 [X]补=01001 可求得[X]移=11001 X=-1001 [X]补=10111 可求得[X]移=00111 计算机组成原理 西北工业大学计算机学院

(2) 机器0的形式为00…0,它所表示的真值是[X]移所能表示的数中最小的数。 3、移码有如下性质: (1) 在移码表示法中,0的移码是唯一的, 整数0 [+0]移= 2n + 00…0 = 100…0 [-0]移= 2n - 00…0 = 100…0 (2) 机器0的形式为00…0,它所表示的真值是[X]移所能表示的数中最小的数。 即[X]移=00…0,其对应的真值是X=0-2n=-2n。而补码中的最小机器数是0,但0并不是最小真值-2n。 (3) 移码的最高位是符号位,但其表示的意义与原码和补码表示的意义相反。符号为0时,表示负数;符号为1,表示正数。 (4) 移码一般只进行加减运算,运算后需要对结果进行修正,修正量为2n,即要对结果的符号位取反后,才能得到移码形式的结果。 (5)通过比较两个移码的大小, 就可得知其对应的真值的大小。 计算机组成原理 西北工业大学计算机学院

2.2.6 各种编码的比较 上面所述的四种表示方式中,移码主要用于表示浮点数的阶码。下面对其它三种编码方法作以比较: (1) 三种编码的最高位都是符号位。 (2) 当真值为正时,三种编码的符号位都用0表示,数值部分与真值相同。 即它们的表示方法是相同的。 (3) 当真值为负时,三种编码的符号位都用1表示,但数值部分的表示各不相同,数值部分存在这样的关系:补码是原码的“求反加1”(整数),或者“求反末位加1”(小数);反码是原码的“每位求反”。 (4) 它们所能表示的数据范围,基本上是一样的,-2n<X<2n(整数)或-1<X<1( 小数),只是补码多表示一个数-2n(整数)或-1(小数)。 三种编码方法的区别主要在于,它们对负数的表示方法有所不同。 计算机组成原理 西北工业大学计算机学院

各种码制之间的关系及转换方法 X真值 [X]移码 符号为+:X0=0 符号为-:X0=1 符号位取反 数值位不变 数值位不变 符号位X0不变 数值位取反,末位加1 [X]反码 X0=0,数值位不变 X0=1,[X]补码=[X]反码+1 [-X]补码 计算机组成原理 西北工业大学计算机学院

2.3 数的定点表示与浮点表示

数据的表示常用的有两种:定点表示法和浮点表示法。 任何一个二进制数N都可以表示为 N=2E·S 其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,S是二进制小数,称为数N的尾数。E和S可正可负。尾数S表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。 计算机组成原理 西北工业大学计算机学院

2.3.1定点数表示法 (1) 阶码E保持不变 (2) 若E=0,小数点固定在最高位之前,则该数是一个纯小数或定点小数。 例如 N=20·0.110101001=0.110101001 (3)若取E=n(n为尾数的位数),则把小数点定在尾数最末位之后,这时表示一个纯整数(定点整数)。 例如 N=27·0.1011010=01011010 计算机组成原理 西北工业大学计算机学院

定点小数 典型数据 原码 真值 补码 最小正数 0.00…001 + 2-n +2-n 最大正数 0.11..1111 +(1-2-n) 数符 尾数 X0 X1 X2 … Xn 小数点 定点小数原码和补码的典型数据 典型数据 原码 真值 补码 最小正数 0.00…001 + 2-n +2-n 最大正数 0.11..1111 +(1-2-n) 0.11…111 最小负数 1.11…111 -(1-2-n) 1.00…000 -1 最大负数 1.00…001 -2-n +0 0.00…000 -0 计算机组成原理 西北工业大学计算机学院

定点整数 典型数据 原码 真值 补码 最小正数 0 00…001 +1 最大正数 0 11..1111 +(2n -1) 0 11…111 数符 尾数 X0 X1 X2 … Xn 定点整数原码和补码的典型数据 小数点 典型数据 原码 真值 补码 最小正数 0 00…001 +1 最大正数 0 11..1111 +(2n -1) 0 11…111 最小负数 1 11…111 -(2n -1) 1 00…000 - 2n 最大负数 1 00…001 -1 +0 0 00…000 -0 计算机组成原理 西北工业大学计算机学院

定点数的分辨率 定点数在数轴上是不连续的 定点数的分辨率是指相邻两个定点数之间的最小间隔。 定点整数的分辨率恒为1 字长n+1的定点小数的分辨率为2-n 计算机组成原理 西北工业大学计算机学院

定点机 硬件上只考虑定点小数或整数运算的计算机 优点:运算简单,硬件结构简单,运算速度快 缺点: 表示数据范围小 使用不方便,运算精度低 存储单元利用率低 计算机组成原理 西北工业大学计算机学院

通常,阶码位数m与尾数位数n之间有如下关系: 2.3.2浮点数表示法 1. 浮点数的格式 通常,阶码位数m与尾数位数n之间有如下关系: 2m-1≥n 即表示阶码的值应保证实际的小数点可以在整个尾数的位格中移动。 阶码 阶符 尾数 尾符 (a) 阶码小数点 尾数小数点 阶符 尾符 尾数 阶码 (b) 阶码和尾数小数点 浮点数的表示形式 计算机组成原理 西北工业大学计算机学院

(1)提高运算精度,尽可能占满尾数的位数,以保留更多的有效数字 (2)保证浮点数的表示唯一性 2. 规格化浮点数 所谓浮点数的规格化,就是通过移动尾数,使尾数S的最高位数字为1。即S满足1/2≤|S|<1时,这个浮点数就是规格化的数,否则就不是。在字长一定的情况下,规格化的浮点数精度最高。 其目的在于: (1)提高运算精度,尽可能占满尾数的位数,以保留更多的有效数字 (2)保证浮点数的表示唯一性 计算机组成原理 西北工业大学计算机学院

原码表示的规格化浮点数 对于尾数为[S]原=Sf.S1S2…Sn,其规格化的真值满足: ½≤|S|∠1 即 S1=1 计算机组成原理 西北工业大学计算机学院

补码表示的规格化浮点数 对于尾数为[S]补=Sf.S1S2…Sn,其规格化的真值满足: ½≤|S|∠1或-1≤|S|∠- ½ 即 计算机组成原理 西北工业大学计算机学院

浮点数的表示范围 尾数的位数决定了数据表示的精度,增加尾数的位数可以增件有效数字的位数,提高数据表示的精度; 上溢区 下溢区 上溢区 负数区 正数区 最大负数 最小负数 最小正数 最大正数 尾数的位数决定了数据表示的精度,增加尾数的位数可以增件有效数字的位数,提高数据表示的精度; 阶码的位数决定了数据表示的范围,增加阶码的位数可以扩大数据表示的范围。 计算机组成原理 西北工业大学计算机学院

【例】VAX-11系列机的浮点数格式 (1)单精度浮点数-F浮点 (2)双精度浮点数-G浮点 数符 阶码 尾数 23位 1位 8位 数符 阶码 尾数 52位 1位 11位 计算机组成原理 西北工业大学计算机学院

【例】 IEEE754浮点数据标准 四种基本格式: 单精度格式(32位):E=8位,M=23位 扩展单精度格式:E≥11位,M=31位 符号位S 指数E 尾数M 四种基本格式: 单精度格式(32位):E=8位,M=23位 扩展单精度格式:E≥11位,M=31位 双精度格式(64位):E=11位,M=52位 扩展双精度格式:E ≥15位,M ≥63位 计算机组成原理 西北工业大学计算机学院

IEEE754标准32位单精度浮点数 实际数值N=(-1)S×1.M×2E-127 S:数符,0——“+”,1——“-” M:尾数23位,小数点左边隐含一位1,有效值为: 1.M 实际数值N=(-1)S×1.M×2E-127 计算机组成原理 西北工业大学计算机学院

IEEE754标准32位单精度浮点数(续) E=0, M=0,则N=0 E=0,M≠0,则N=(-1)S×2-126×(0.M),为非规格化数 1≤E≤254,则N=(-1)S×2E-127×(1.M),为规格化数 E=255,且M≠0 ,则N=NaN(非数值) E=255,且M=0,则N=∞(无穷大) 计算机组成原理 西北工业大学计算机学院

x=[1+(1-2-23)]×2127 (2)最小正数 x=1.0×2-126 【例】假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为: x=(-1)s×(1.M)×2E-127 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少? [解:] (1)最大正数 11111110 11111111111111111111111 x=[1+(1-2-23)]×2127 (2)最小正数 00000000000000000000000 00000001 x=1.0×2-126 计算机组成原理 西北工业大学计算机学院

(3)最小负数 x=-[1+(1-2-23)]×2127 x=-1.0×2-126 11111110 11111111111111111111111 x=-[1+(1-2-23)]×2127 (4)最大负数 00000001 00000000000000000000000 x=-1.0×2-126 计算机组成原理 西北工业大学计算机学院

2.3.3定点数表示法和浮点数表示法的比较 1.两种表示法所表示的数据范围不同 (1)定点表示法,8位小数,则能表示的数据范围(绝对值)为: 0.0000001~0.1111111 (2-7~1-2-7) (2)浮点表示法,2位阶码,1位阶符,4位尾数,1位尾符,则能表示的数据范围(绝对值)为: 0.0001×2-3 ~ 0.1111×23 计算机组成原理 西北工业大学计算机学院

2.溢出情况 (1) 定点表示法(小数) 带符号n+1位数时: 小于2-n时:当0; 大于1-2-n时:溢出,停机。 (2) 浮点表示法 (1)   定点表示法(小数) 带符号n+1位数时: 小于2-n时:当0; 大于1-2-n时:溢出,停机。 (2)   浮点表示法 规格化后,从阶码上分析溢出: 阶码很小时,下溢:当0; 阶码超出最大值时,上溢:停机。 计算机组成原理 西北工业大学计算机学院

3.运算规则的复杂性不同 定点数:较简单; 浮点数:较复杂。 4.规格化浮点数的精度远远大于定点数。 计算机组成原理 西北工业大学计算机学院

2.4 非数值型数据的表示

2.4.1 逻辑数——二进制串 逻辑数用于代表命题的真与假、是与非等逻辑关系,通常用一个二进制串来表示,其特点: 逻辑数中的0和1仅代表一个命题的真与假、是与非等逻辑关系; 逻辑数没有符号问题; 逻辑数只能按位参与逻辑运算,无位权和进位问题 计算机组成原理 西北工业大学计算机学院

逻辑运算 ⊕ 逻辑运算 运算符号 电路符号 与 ∧ · 或 ∨ + 非  ̄ 异或 同或 ⊙ & ≥1 =1 =1 计算机组成原理 ∧ · 或 ∨ + 非  ̄ 异或 ⊕ 同或 ⊙ & ≥1 =1 =1 计算机组成原理 西北工业大学计算机学院

2.4.2 字符与字符串 ASCII码 “美国标准信息交换代码”(American Standard Code for Information Interchange),简称ASCII码。7位二进制编码,可表示27=128个字符。 ASCII码中,编码值0~31不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于通信中的通信控制或对计算机设备的功能控制。编码值为32的是空格(或间隔)字符SP。编码值为127的是删除控制DEL码。其余的94个字符称为可印刷字符。 计算机组成原理 西北工业大学计算机学院

b3b2b1b0位 b6b5b4位 000 001 010 011 100 101 110 111 0000 NUL DEL SP @ P p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 ETB 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ | 1101 CR GS - = M ] m } 1110 SO RS . > N n ~ 1111 SI US / ? O _ o 计算机组成原理 西北工业大学计算机学院

EBCDIC码 EBCDIC码(Extended Binary Coded Decimal Interchange Code,扩展BCD码),它是8位二进制编码,可以表示256个编码状态,但只选用其中一部分。 主要用在IBM公司生产的各种机器中。 计算机组成原理 西北工业大学计算机学院

字符串 字符串:是指连续的一串字符,通常方式下,它们依次占用主存中 连续的多个字节,每个字节存一个字符。 [例] 将字符串:       IF└┘A>B└┘THEN└┘READ(C) 从高位字节到低位字节依次存在主存中。 [解:] 设:主存单元长度由4个字节组成。每个字节中存放相应字符的ASCII值,文字表达式中的空格“└┘”在主存中也占一个字节的位置。 因而每个字节分别存放十进制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。  计算机组成原理 西北工业大学计算机学院

主存各字节单元内容 I F └┘ A > B T H E N R D ( C ) 计算机组成原理 西北工业大学计算机学院

2.6.3 汉字的表示 1、特点: (1)汉字是一种象形文字,据统计,从甲骨文至今约有六万左右的汉字。目前常见的汉字有约七千个。 (2)汉字字形结构复杂,笔划繁多。 (3)汉字同音字多,多音字多。 2、涉及多种编码:首先将汉字转换成计算机能接收的编码,称为汉字输入码,输入码进入计算机后必须转换成汉字内码才能进行处理。为了显示输出汉字或打印输出汉字,需要经过一个变换,将汉字内码转换成汉字字形码。此外,为了使不同的汉字处理系统之间能够交换信息,还应存在汉字交换码。 计算机组成原理 西北工业大学计算机学院

拼音码:拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高,同音字选择影响了输入速度。 汉字的输入编码 包括:数字码、拼音码和字形码 数字码:常用的是国标区位码,用数字串代表一个汉字输入。区位码是将国家标准局公布的6763个两级汉字分为94个区,每个区分94位,实际上把汉字表示成二维数组,每个汉字在数组中的下标就是区位码。区码和位码各两位十进制数字,因此输入一个汉字需按键四次。 数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,。缺点是代码难以记忆。 拼音码:拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高,同音字选择影响了输入速度。    为了加快输入速度,在上述方法基础上,发展了词组输入\联想输入等多种快速输入方法。但是都利用了键盘进行“手动”输入。理想的输入方式是利用语音或图象识别技术“自动”将拼音或文本输入到计算机内,使计算机能认识汉字,听懂汉语,并将其自动转换为机内代码表示。目前这种理想已经成为现实。 字形码:字形编码是用汉字的形状来进行的编码(例:五笔字型)。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序依次输入,就能表示一个汉字。 计算机组成原理 西北工业大学计算机学院

汉字内码 注意:有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。 汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是七位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为“1”。 注意:有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。 计算机组成原理 西北工业大学计算机学院

汉字字模码 字模码是用点阵表示的汉字字形代码,它是汉字的输出形式 例如: 字模码 此例,汉字的字模码为: 16位× 16位=32字节 计算机组成原理 西北工业大学计算机学院

注意到: 字模点阵只能用来构成汉字库,而不能用于机内存储。字库中存储了每个汉字的点阵代码,用于汉字的显示输出或打印输出。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。 汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码,不要混为一谈。 计算机组成原理 西北工业大学计算机学院

汉字交换码 用于不同汉字系统之间交换汉字信息的汉字编码。 1981年我国制定了《信息交换用汉字编码字符集基本集GB2312-80》国家标准(国标码)。每个二进制编码用两个字节表示。共收录一级汉字3755个,二级汉字3008个,各种符号682个,共计7445个。 1993年制定GB13000.1-1993,收录20902个中、日、韩字符。 1995年制定《汉字扩展规范GBK1.0 》,收录21886简、繁体汉字。 2000年制定《 GB18030-2000信息技术信息交换用汉字编码字符集基本集的扩充》 Unicode ISO10646 收录65536个字符,其中含20992个汉字 计算机组成原理 西北工业大学计算机学院

用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二—十进制编码,也称BCD码(Binary Coded Decimal)。 2.5 十进制数串的表示 用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二—十进制编码,也称BCD码(Binary Coded Decimal)。

2.5.1 二—十进制编码原理 1、二—十进制的编码都采用压缩的十进制串的方法,即四个二进制位的值来表示一个十进制数码。 2、各种编码的区别在于选用哪十个状态。选择的原则是:要考虑输入和输出时转换方便;内部运算时,加、减运算规则要尽量简单;在特定场合,可能有其它一些要求。 3、从每个二进制位是否有确定的位权区分,可把二—十进制编码分为有权码和无权码。 计算机组成原理 西北工业大学计算机学院

2.5.2 二—十进制有权码 1、对于有权码,将每位的数码与相应的位权相乘,再求和,就可以得到它所代表的十进制数值。 2、8421码实现加、减运算时的修正规则: (1)4位一组二进制数,两个8421码表示的数相加之和等于或小于1001,即十进制的9时,不需要修正,在各组内,二进制代码相加,仍遵循“逢二进一”的规则。 (2)4位一组二进制数,两个8421码相加结果大于1001(即十进制9)时,则应该对该组的4位进行“加6修正”,使它向高一组产生进位。 (3)4位一组二进制数,两个8421码相加结果大于或等于10000(即十进制16),而向高一组进位时,则应该对该4位进行“加6修正”。 计算机组成原理 西北工业大学计算机学院

3、其它编码方法还有:2421码、5211码、4311码和84-2-1码( 四位二进制位的位权分别为8、4、-2、-1)等。其最方便使用的共同特点为: (1) 对于2421码、5211码、4311码,任何两个十进制数位,采用这三种编码的任何一种编码,它们相加之和等于或大于10时,其结果的最高位向左产生进位,小于10时则不产生进位。这一特点有利于实现“逢十进位”的计数和加法规则。 (2) 对于2421码、5211码、4311码和84-2-1码,任何两个十进制数位,采用这四种编码的任何一种编码,它们相加其和等于9时,即它们的二进制编码位互为反码,则其结果的四个二进制位一定是1111,能较好地体现十进制的按9 取补与二进制的按1取补的对应关系,这对减法很有用。 计算机组成原理 西北工业大学计算机学院

2.5.3 二—十进制无权码 无权码中,用的较多的是余3码(Excess-3 code)和格雷码(Gray code),格雷码又称循环码。 1. 余3码 (1)   余3码是在8421码的基础上,把每个代码都加上0011而形成的。 (2)   普通8421码的加法器仍能为余3码加法器直接利用,具体规则如下: (A)若两个十进制数的余3码相加,如果结果不产生进位,则从所得和值去减0011,便得十进制位和的余3码。 (B)若两个十进制数的余3码相加,如果结果有进位,则其进位正确, 但需将所得和值加上0011,才求得十进制数和的余3码。 计算机组成原理 西北工业大学计算机学院

(1) 格雷码的编码规则是使相邻的两个代码,只有一个二进制位的状态不同,其余三个二进制位必须有相同状态。 2. 格雷码 (1)   格雷码的编码规则是使相邻的两个代码,只有一个二进制位的状态不同,其余三个二进制位必须有相同状态。 (2)   优点:从一个编码变到下一个相邻编码时,只有一个位的状态发生变化,有利于保证代码变换的连续性。在模拟/数字转换和产生节拍电位等应用场合特别有用。 有关二—十进制的部分编码方案列于表2.1中。 计算机组成原理 西北工业大学计算机学院

表 二—十进制的编码的部分编码方案 1001 1111 1100 0100 1000 1110 1011 0111 1101 1010 0001 0011 0110 0101 0010 0000 9 8 7 6 5 1 2 3 4 格雷码(2) 格雷码(1) 余3码 4311 84-2-1 5211 2421 无权码 位有权码 十进制 符号 (BCD) 8421 计算机组成原理 西北工业大学计算机学院

2.5.4 十进制数串的表示 1.字符串形式 将十进制数串以字符串的形式进行表示,即把十进制数串中每一位数字以及符号都看做一个字符,用一个字节表示它的字符编码(ASCII码)。 根据数串中符号的位置,可以分为前分隔数字串和后嵌入数字串两种表示形式: (1)前分隔数字串 符号位占用单独一个字节,位于数字位之前,正号用“+”表示(编码为2BH),负号用“-”表示(编码为2DH) 2B 31 33 35 2D 32 36 37 38 -2678 +135 计算机组成原理 西北工业大学计算机学院

符号位不单独占用一个字节,而是嵌入到最低一位数字的编码中,若为正,则最低一位的数字编码不变,否则,用40H与最低一位的数字编码加。 (2)后嵌入数字串 符号位不单独占用一个字节,而是嵌入到最低一位数字的编码中,若为正,则最低一位的数字编码不变,否则,用40H与最低一位的数字编码加。 31 33 35 32 36 37 78 -2678 +135 计算机组成原理 西北工业大学计算机学院

2.压缩的十进制数串 用一个字节存放两位十进制数,每一位十进制数均BCD码表示,符号另占用半个字节,并存放在最低数值位之后,通常用1100表示正号,用1101 表示负号 0001 0011 01 01 1100 0000 0010 0110 0111 1000 1101 -2678 +135 计算机组成原理 西北工业大学计算机学院

2.6 数据检验码

2.6.1 码距与数据校验码 1、数据校验的实现原理:数据校验码是在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法的数据编码出现错误时成为非法编码。这样就可以通过检测编码的合法性达到发现错误的目的。 2、海明距离:一组编码中任何两个编码之间代码不同的位数。 3、码距:码距指任何一种编码的任两组二进制代码中,其对应位置的代码最少有几个二进制位不相同,即一套编码系统中最小的海明距离。 4、校验码:具有检测某些错误或带有自动纠正错误能力的数据编码。 计算机组成原理 西北工业大学计算机学院

设码距为d,则码距与校验码的检错和纠错能力的关系是: d≥e+1,最多可检验e个错; d≥2t+1,最多可纠正t个错; d≥e+t+1,且e>t,最多可检验e个错并能纠正t个错 计算机组成原理 西北工业大学计算机学院

2.6.2 奇偶校验码 1、码距=2 2、奇偶校验码:它是在被传送的n位信息组上, 加上一个二进制位作为校验位,使配置后的n+1位二进制代码中1的个数为奇数( 奇校验)或偶数(偶校验)。   例: 数据 奇校验编码 偶校验编码 00000000 100000000 000000000 01110101 001110101 101110101 其中,最高一位为校验位,其余低八位为数据位。  计算机组成原理 西北工业大学计算机学院

3、奇偶校验码只能检测出数据代码中一位出错的情况,但无法判断差错所发生的位置。常用于存储器读写检查,或ASCII字符传送过程中的检查。 进行奇偶校验时,E=0表示正确,E=1表示出错 计算机组成原理 西北工业大学计算机学院

2.6.3 海明校验码 1.原理 海明校验码的实现原理是:在数据位中加入几个校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供了依据。 2.编码规则 若海明码的最高位号为m,最低位号为1,即HmHm-1…H2H1,则海明码的编码规则是: (1)校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。 (2)海明码的每一位位码Hi(包括数据位和校验位)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。 计算机组成原理 西北工业大学计算机学院

这个关系式称为海明不等式,若信息位长度n确定后,由此可得到校验位k的最短长度。 3.增添校验位 假设欲检测的有效信息为n位,需增加的校验位为k位,则校验码的长度为n+k位。校验位的状态组合,应当具有指出n+k位中任一位有错或无错的能力,即需要区别出n+k+1种状态。应满足以下关系式: 2k≥n+k+1 这个关系式称为海明不等式,若信息位长度n确定后,由此可得到校验位k的最短长度。 确定校验位后,就可以与信息位组成海明校验位。假设数据位是7位二进制编码,据上所述,校验位的位数k为4,故海明码的总位数为11。它们的排列关系可表示为: 海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 海明码: D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 可知: 每个校验位由其本身校验; 每个数据位由若干校验位校验。 计算机组成原理 西北工业大学计算机学院

根据海明码的编码规则,每一位海明码都有多个校验位校验,且被校验的每位的位号等于参与校验它的几个校验位的位号之和。 4.校验位校验任务的分配 根据海明码的编码规则,每一位海明码都有多个校验位校验,且被校验的每位的位号等于参与校验它的几个校验位的位号之和。 占据各权位上的校验位按权组成的8421码,正好等于海明码的位号,即海明码的位号Hi正好等于要校验它的校验位所占权位权值之和。 例如:H11=P4×23+P2×21+P1×20 这说明了H11位将由 P4、P2、P1进行校验。 校验位P1可以校验:H1 、H3、H5 、H7 、H9、H11、H13、H15 校验位P2可以校验:H2 、H3、 H6、H7 、H10、H11、H14 、H15 校验位P3可以校验:H4 、H5、 H6、 H7 、H12、H13、H14 、H15 校验位P4可以校验:H8、H9、 H10、H11、H12、H13、H14 、H15 根据校验时采用奇校验或是偶校验,可以写出相应的校验方程。 计算机组成原理 西北工业大学计算机学院

【例】设有一个7位信息码位0110001,求它的海明码。 解: 此例中,信息位n=7,根据海明不等式,可求得校验位最短长度k=4。 其海明码先表示如下: 海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 海明码: 0 1 1 P4 0 0 0 P3 1 P2 P1 按偶校验写出校验方程为: H1 H3H5 H7 H9H11=0 (P1=H1) H2 H3 H6H7 H10H11=0 (P2=H2) H4H5 H6H7=0 (P3=H4) H8H9 H10H11=0 (P4=H8) 由此可得:P1=0、P2=0、P3=0、P4=0,所以0110001的海明码为01100000100。 计算机组成原理 西北工业大学计算机学院

H1 H3H5 H7 H9H11=0  1  0  0  1  0 = 0 = E1 5.检错与纠错 方法:将错了的码字重新代入校验方程校验一次即可。假设上面例子中的海明码01100000100传送后,若H6位发生了错误,变成了01100100100,这时把它们代入上面的偶校验校验方程,如下: H1 H3H5 H7 H9H11=0  1  0  0  1  0 = 0 = E1 H2 H3 H6H7 H10H11=0  1  1  0  1  0 = 1 = E2 H4H5 H6 H7=0  0  1  0 = 1 = E3 H8H9 H10H11=0  1  1  0 = 0 = E4 可以把E4E3E2E1= 0110看成一个“指误字”,因为其二进制码为0110,说明H6出了错,是H6错成了1,所以要纠错,纠错时将H6位取反值,即让它恢复到正确值0。这样纠错后,即可得到正确的海明码01100000100。 注:该方法能正确指出存在的一位错误并纠正, 但多多位出错的情况无能为力 计算机组成原理 西北工业大学计算机学院

2.6.4 循环冗余校验码(Cyclic Redundancy Check) 1.CRC的编码方法 n是有效数据信息位位数,r是校验位位数。总长k=n+r位,称(k,n)码。 设待编码的有效信息以多项式M(x)表示,将M(x)左移r位得到多项式M(x)*Xr,使低r位二进制位全为零,以便与r位校验位拼接。使用多项式M(x)*Xr除以生成多项式G(x),求得的余数即为校验位。为了得到r位余数(校验位),G(X)必须是r+1位的。 计算机组成原理 西北工业大学计算机学院

假设M(x)*Xr除以生成多项式G(x) ,求得的余数用表达式R(x)表示,商的表达式用Q(x)表示,它们之间的关系如下: 这时将r位余数R(X)与左移r位的M(x)*Xr相加,就得到n+r位的CRC编码: M(x)*Xr+R(x) = Q(x)*G(x) + R(x) + R(x) 因为“两个相同数据的模2和为零”,即R(x) + R(x) = 0,所以, M(x)*Xr+R(x) = Q(x)*G(x) 可以看出,所求得的CRC码是一个可被G(X)表示的数码除尽的数码。 计算机组成原理 西北工业大学计算机学院

【例】设四位有效信息位是1100,选用生成多项式 G(X)=1011,试求有效信息位1100的CRC编码。 解: (1) 将有效信息位1100表示为多项式M(x) M(X) = X3 + X2 = 1100 (2) M(X)左移r=3位,得M(x)*X3 M(x)*X3 = X6 + X5 = 1100000 (3) 用r+1位的生成多项式 G(X),对M(x)*Xr作“模2除” 1100000/1011 = 1110 + 010/1011 则R(X)=010 (4) M(x)*X3 与r位余数R(X) 作“模2加”,即可求得它的CRC编码 M(x)*X3 + R(X) = 1100000 + 010 = 1100010 (模2加) 因为k=7、n=4,所以编好的CRC码又称为(7,4)码。 计算机组成原理 西北工业大学计算机学院

2.模2运算:不考虑借位和进位 (1) 模2加减:可用异或门实现,即: 0+0=0;0+1=1;1+0=1;1+1=0; (1)     模2加减:可用异或门实现,即: 0+0=0;0+1=1;1+0=1;1+1=0; 0-0=0;0-1=1;1-0=1;1-1=0; (2)     模2乘法:用模2加求部分积之和 例如: 1011 x 11 + 1011 11101 计算机组成原理 西北工业大学计算机学院

(3)     模2除法:按模2减求部分余数,每上一位商,部分余数要减少一位,上商规则是:只要余数最高位为1,则商1,否则为0。当部分余数的位数小于除数时,该余数为最后余数。 例如: 111……………….商 11(除数) 1000(被除数) 11 10 1 计算机组成原理 西北工业大学计算机学院

不同的出错位,其余数也是不同的。下表给出了(7,4)CRC码的出错模式。 CRC码传送到目标部件,用约定的多项式G(x)对收到的CRC码进行“模2除”,若余数为0,则表明该CRC校验码正确;否则表明有错,不同的出错位,其余数是不同的。由余数具体指出是哪一位出了错,然后加以纠正。 不同的出错位,其余数也是不同的。下表给出了(7,4)CRC码的出错模式。 可以证明:更换不同的有效信息位,余数与出错位的对应关系不会发生变化,只与码制和生成多项式G(X)有关。 计算机组成原理 西北工业大学计算机学院

(7,4)码的出错模式 【例】设生成多项式G(x)=1011,若接收端收到码字为 A7 A6 A5 A4 A3 A2 A1 =1010111,用G(x)做模2除,得到余数为100,说明A3位错误,可纠正之 计算机组成原理 西北工业大学计算机学院

不是任何一个(k+1)位多项式都能作为生成多项式,从检错、纠错的要求来看,生成多项式应满足下列要求: 3.关于生成多项式 不是任何一个(k+1)位多项式都能作为生成多项式,从检错、纠错的要求来看,生成多项式应满足下列要求: (1) 任何一位发生错误,都应使余数不为零; (2) 不同位发生错误,都应使余数不同; (3) 用余数补零,继续作“模2除”,应使余数循环。 计算机组成原理 西北工业大学计算机学院