计算机组成原理第二章数据在计算机中的表示.ppt

上传人:小飞机 文档编号:6606693 上传时间:2023-11-17 格式:PPT 页数:91 大小:563.50KB
返回 下载 相关 举报
计算机组成原理第二章数据在计算机中的表示.ppt_第1页
第1页 / 共91页
计算机组成原理第二章数据在计算机中的表示.ppt_第2页
第2页 / 共91页
计算机组成原理第二章数据在计算机中的表示.ppt_第3页
第3页 / 共91页
计算机组成原理第二章数据在计算机中的表示.ppt_第4页
第4页 / 共91页
计算机组成原理第二章数据在计算机中的表示.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《计算机组成原理第二章数据在计算机中的表示.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第二章数据在计算机中的表示.ppt(91页珍藏版)》请在三一办公上搜索。

1、Good Morning,第二章 数据在计算机中的表示,第二章 数据在计算机中的表示,概述字符编码中文编码逻辑数据数值数据校验码,概述,计算机中最重要的功能是处理信息,如:数值、文字、符号、语言和图象等。计算机内部,各种信息都必须采用数字化编码的形式被传送、存储、加工。因此掌握信息编码的概念与处理技术是至关重要的。所谓编码,就是用少量简单的基本符号,选用一定的组合规则,以表示出大量复杂多样的信息。,概述,常用的信息分为:定点数(fixed-point)数值信息 浮点数(floating-point)字符(character)非数值信息 汉字(Chinese character)逻辑数据(log

2、ical data),字符编码,用一定位数的二进制数“0”和“1”进行编码给出。常用的字符编码ASCII码。ASCII(American Standard Code for Information Interchange),字符编码,ASCII码是美国信息交换标准代码。(American Standard Code for Information Interchange)包括0-9十个数字,大小写英文字母及专用符号等95种可打印字符。另有33不可打印字符,被用于控制码。,Computer,01000011 01101111 0110110101110000 01110101 011101000

3、1100101 01110010,7 6 5 4 3 2 1,中文编码,汉字输入码:为便于汉字进行输入时的编码,将汉字代码化。汉字机内码:用于汉字信息的存储、交换、检索等操作的机内代码。一般用两个字节表示。汉字字型码:汉字输出时的编码。用点阵表示。,中文编码,字符代码化(输入),数字码拼音码字形码,逻辑数据,逻辑型数据只有两个值:真 和 假,正好可以用二进制码的两个符号分别表示,例如 1 表示 真 则 0 表示 假不必使用另外的编码规则。对逻辑型数据可以执行逻辑的 与 或 非等基本逻辑运算。其规则如下,逻辑数据 输入 输出,数值数据,在选择计算机的数的表示方式时,需要考虑以下几个因素:1要表示

4、的数的类型;2数值的范围;3数值的精度;4数据存储和处理所需要的硬件代价。,数值数据,定点数 浮点数 十进制数串,数值数据定点数的表示方法,定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数据表示成纯小数或纯整数。定点数xx0 x1x2xn 在定点机中表示如下(0为符号位,0代表正号,1代表负号):,纯小数的表示范围为(x0 x1x2xn 各位均为0时最小;各位均为1时最大)0|12n 纯整数的表示范围为0|2n1,数值数据数的机器码表示,在计算机中对数据进行运算操作时,符号位如何表示呢?是否也同数值位一道参加运算操作呢?为了

5、妥善的处理好这些问题,就产生了把符号位和数字位一起编码来表示相应的数的各种表示方法,如原码、补码、反码、移码等。通常将前者称为真值,后者称为机器数或机器码。,数值数据原码表示法,定点小数X表示:Ns.N1 N2 Nn 定义:X 原=定点整数X表示:Ns N1 N2 Nn 定义:X 原=,X,0 X 1,1-X,-1 X 0,X,0 X 2n,2n-X,-2n X 0,数值数据原码表示法,实例:X1=0.10110-0.10110 0.0000 X 原=0.10110 1.10110 0.0000 1.0000 实例:X1=10110-10110 0000 X 原=010110 110110 0

6、0000 10000,数值数据原码表示法,性质:原码为符号位加上数的绝对值,0正1负 原码零有两个编码,+0和-0编码不同 原码难以用于加减运算,但乘除方便 N+1位二进制原码所表示的范围为:小数:MAX=1-2-n,MIN=(1-2-n)整数:MAX=2n-1,MIN=(2n-1),数值数据原码表示法,原码的优点是:简单易懂。缺点是:难以用于加减运算。原因是:如果是异号相加,则要进行减法运算。首先要比较绝对值的大小,然后大数减小数,最后确定符号。为了便于加减运算,采用了补码表示。,数值数据补码表示法,补码是在“模”和“同余”的概念下导出的。“模”是指一个计量系统的计量范围,即产生“溢出”的量

7、。在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果是n位整数,其模为2n。如果是n位小数,其模为2。若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,数值数据补码表示法,定义:任意一个X的补码为X补,可以用该数加上其模M来表示。X补=X+M,数值数据补码表示法,定点小数表示:X0.X1 X2 Xn 定义:X 补=(MOD 2)定点整数表示:X0 X1 X2 Xn 定义:X 补=(MOD 2n+1),X,2+X,0 X 1,-1 X 0,X,2n+1+X;,0 X 2n,-2n X 0,数值数据补码表示法,由于正数的补

8、码就是正数本身,故着重讲解负数求补码的方法。,负数求补码,数值数据补码表示法,(1)由定义求例:,X补=2+X,=10+(-0.1101001),=1.0010111,数值数据补码表示法,例:X=-1101001 解:,X补=28+X,=100000000+(-1101001),=10010111,反过来,由补码求真值,只要将公式进行交换即可。,由-X补求X补,此规则同样适用。,数值数据补码表示法,(3)由X补求-X补:连符号位一起各位求反,末位加1。例:X补=1.1010101解:,X补=1 1 0 1 0 1 0 1,-X补=,0,0,0,0,1,1,1,0,+,1,0 0 1 0 1 0

9、 1 1,数值数据补码表示法,(4).由X补求1/(2X)补:将X补的符号位和数值位一起向右移动一次.符号位移走后保持原来的值不变.例:,X补=,1,0,0,1,1,0,0,0,X/2补=,1,0,1,0,1,0,0,0,1,这称为“算术移位”,你会求X/4补和X/8补吗?,数值数据补码表示法,性质:0的补码是唯一的 补码便于加减运算 n+1位补码所能表示的数:小数:MAX=1-2-n,MIN=1整数:MAX=2n-1,MIN=2n,数值数据补码表示法,补码便于加减运算,因为不论正、负数它只需要做加运算。但负数的求补需要做一次减运算,显然有不方便,为此又引入了反码。,数值数据反码表示法,定点小

10、数表示:Ns.N1 N2 Nn 定义:X 反=定点整数表示:Ns N1 N2 Nn 定义:X 反=,X;,(2-2-n)+X;,0 X 1,-1 X 0,X;0 X 2n,(2n+1 1)+X;-2n X 0,数值数据反码表示法,由原码求反码,如果X为正数,则X反=X原;如果X为负数,则将X原除符号位以外,每位都变反,可得到X反。实例:X1=0.10110-0.10110 0.0000 X 原=0.10110 1.10110 0.0000 1.0000 X 反=0.01001 1.01001 0.0000 1.1111,数值数据反码表示法,X 反=2+X-2-n X 补=2+X 所以当x的真值

11、为负数时:有 X 补=X 反+2-n 负数求补:变反加一,数值数据移码表示法,对于n+1位数x0 x1 x2 xn 定义:X 移=2n+x;由于移码是在原值X上加一个2n,所以也称为增码,因此,符号为1时,表示正数,符号为0时,表示负数。例如:X=1101010,则:X补=01101010 X移=27+X=11101010,-2n X 2n,数值数据移码表示法,例如:X=-1101010,则:X补=28+X=10010110 X移=27+X=00010110 结论:由X补求X移:只要将X补的符号位变反,就可得到X移,数值数据移码表示法,零的移码是唯一的,即:+0移=0移=10000性质:若X1

12、移X2移,则有 X1X2 浮点数的阶码常用移码来表示的原因,就是用到了该性质。,四种码制的比较,1)移码最高位为“0”表示负数,最高位为“1”表示正数。这与原码、补码、反码的符号位正好相反。2)原码、补码、反码对于正数,它们都等于真值本身,而对于负数各有不同的表示。3)最高位都表示符号位。补码、反码和移码的符号位可作为数值位的一部分看待,和数值位一起参加,四种码制的比较,运算,但原码的符号位不允许和数值位同等看待,必须分开进行处理。4)对于真值0,原码和反码各有两种不同的表示形式,而补码、移码是唯一的。教材P22 例题6、7、8,例1,以n+1定点整数为例,用数轴形式说明原码、反码、补码表示范

13、围和可能的数码组合情况。,例2,将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。解:二进制真值及其诸码值列于下表,其中0在原反中有两种表示。由表中数据可知,补码值与移码值差别仅在于符号位不同。,例3,设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?;解:,例题3,(1)定点原码整数表示 最大正数值(2151)10(32767)10 0111 1111 1111 1111 最小负数值(2151)10(32767)10 1111 1111

14、 1111 1111(2)定点原码小数表示 最大正数值(1215)10(0.111.11)2 最小负数值(1215)10(0.111.11)2,数值数据浮点数表示法,定义:任意一个R进制都可以通过移动小数点的位置写成N=RE*M式中:R是基数,可以取2,8,16,一旦定义则不能改变,是隐含的。M是尾数,为纯小数,表示数N的有效数字位数。决定了浮点数的精度。E是阶码,为纯整数,指出小数点在该数中的位置。决定了浮点数的大小。由于阶码可以取不同的数值,所以,小数点的位置是不确定的,因而称之为浮点数。,数值数据浮点数表示法,由于基数在系统中是隐含约定的,不需要用代码表示,所以浮点数只需用一对定点数(阶

15、码和尾数)表示,其中,符号表示数的正负,阶码表示小数点的位置,而尾数表示有效数字。,数值数据浮点数表示法,数的表示范围:设m和n分别表示阶码和尾数的位数(均不包含符号位),则浮点数的表示范围是:-2 2m-1(1-2-n)N2 2m-1(1-2-n),数值数据浮点数表示法,最大正数为:最小负数为:最小正数为:最大负数为:,数值数据浮点数表示法,规格化定义:所谓规格化数,就是非0的尾数,其绝对值 应大于或等于05。判别方法:原码规格化后,正数为0.1的形式 负数为1.1的形式 补码规格化后,正数为0.1的形式 负数为1.0的形式,数值数据浮点数表示法,规格化:存储在计算机中的浮点数以及运算结果的

16、浮点数都应为规格化数,如果尾数不是规格化数,要用移位方法把他变为规格化数,这种处理过程,称为规格化。设m和n分别表示阶码和尾数的位数(均不包含符号位),则规格化的浮点数表示范围是:,数值数据浮点数表示法,最大正数为:最小负数为:最小正数为:最大负数为:,例题:设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),将十进制数13/128写成二进制定点数和浮点数,并分别写出定点和浮点的机器码形式。,解:令x=13/128 则其二进制形式为:x=0.0001101000 定点数表示为:x=0.0001101000 浮点数规格化表示为:x=0.1101000000*2-11,定点机

17、中:x原=x补=x反=0.0001101000浮点机中x原=1,0011;0.1101000000 x补=1,1101;0.1101000000 x反=1,1100;0.1101000000,数值数据浮点数表示法,IEEE754标准 IEEE754标准定义了四种浮点数的基本格式:单精度格式、扩展单精度格式、双精度格式、扩展双精度格式。对于规格化的浮点数,IEEE754规定在小数点的左边有一隐含位(作为二进制整数的个位)。由于该位为1,不需要存储,在运算时,自动加上该位参加运算。,IEEE754标准,32浮点数 一个规格化的32位浮点数的真值 E是阶码,用移码表示 M是尾数,其所表示的值为1.M

18、,且1为隐含值。,IEEE754标准,一个规格化的64位浮点数真值,例5,若浮点数的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。解:将十六进制数展开后,可得二进制数格式为,指数e阶码1271000001001111111 00000011=(3)10包括隐藏位1的尾数1.M 1.011 0110 0000 0000 0000 0000 1.011011于是有(1)s1.M2e(1.011011)23 1011.011(11.375)10,例6,将十进制数20.59375转换成32位浮点数的二进制格式来存储。解:首先分别将整数和分数部分转换成二进制数:20.593751

19、0100.10011 然后移动小数点,使其在第1,2位之间 10100.100111.01001001124 e4,于是得到:S0,E4127131,M010010011最后得到32位浮点数的二进制存储格式为:0100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16,例7,某浮点数的格式为:阶码为m+1位(一位符号位),尾数为n+1位(一位符号位),均为补码表示,且尾数已规格化,基数为2,问:非零的最小正数为多少?最大正数为多少?绝对值最小负数为多少?绝对值最大负数为多少?解:,解:,非零的最小正数为 100,0.100最大正数为 011,0.11

20、1绝对值最小负数为 100,1.100绝对值最大负数为 011,1.000,例8,若为定点整数,采用一位符号位,如果寄存器中的内容为10000001,当它分别表示原码、补码、反码、移码和无符号数时,问对应的真值为多少?解:原码的真值为:补码的真值为:反码的真值为:移码的真值为:无符号数的真值为:,-1,-127,-126,1,129,校验码,为了提高计算机的可靠性,除了采取选用更高可靠性的器件,更好的生产工艺等措施之外,还可以从数据编码上想一些办法,即采用一点冗余的线路,在原有数据位之外再增加一到几位校验位,使新得到的码字带上某种特性,之后则通过检查该码字是否仍保持有这一特性,来发现是否出现了

21、错误,甚至于定位错误后,自动改正这一错误,这就是我们这里说的检错纠错编码技术。,校验码,三种常用的检错纠错码:奇偶检错码 用于并行数据传送中海明检错与纠错码 用于并行数据传送中循环冗余码 用于串行数据传送中,校验码奇偶校验码,奇偶校验码:用于并行码检错原理:在 k 位数据码之外增加 1 位校验位,使 K+1 位码字中取值为 1 的位数总保持为 偶数(偶校验)或 奇数(奇校验)。例如:0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 原有数字位 两个新的码字,偶校验,奇校验,校验位,校验码奇偶校验码,+,奇偶校验码的实现电路奇校验 偶

22、校验 出错指示,+,+,+,+,+,+,+,同左侧电路,P(校验位),八位数据位,D7 D6 D5 D4 D3 D2 D1 D0,p,译码电路,编码电路,校验码海明校验码,海明校验码:是由Richard Hamming于1950年提出的。这种编码能纠正一位出错,并能自动恢复出错位的校验码。1.校验码的位数:设要发送的数据为k位,则校验码的位数r,应满足:,校验码海明校验码,2.海明码的编码规则:(1)校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号为 的位置,其余各位为数据位,并按 从低位向高位逐位依次排列的关系分配各数据位.(2)海明码的每一位码Hi由多个校验位校验,其关系是被校验

23、的每一个位位号要等于校验它的各校验位的位号之和.(3)在增大合法码的码距时,使所有码的码距尽量均匀的增大,以保证对所有码的验错能力平衡提高.,校验码海明校验码,举例:k=4,r=3,求相应的海明校验码解:(1)根据规则1,Pi应放在1,2,4的位置上。即:,位 号:1 2 3 4 5 6 7,Pi占位:P1 P2 D1 P3 D2 D3 D4,(2)根据规则2:,P1 P2 D1 P3 D2 D3 D4,校验码海明校验码,校验位只与本身有关,数据位则与多个校验位有关。例如:D1由P1和P2校验,D3由P2和P4校验等。P1校验第1、3、5、7位 P2校验第2、3、6、7位 P3校验第4、5、6

24、、7位 当某一位数据发生变化时,必将引起一些Pi的变化。,校验码海明校验码,按偶校验写出求p1、p2、p3的公式:,如果设D1 D2 D3 D4=1011,则:p1=0,p2=1,p3=0,校验码海明校验码,3.查错原理:,由G3G2G1就组成了一个指误字。当G3G2G1=000时,说明没有出错;当G3G2G1=i 时,i就是错误的位号。,校验码海明校验码,P1 P2 D1 P3 D2 D3 D4例:若发送的信息为 0 1 1 0 0 1 1 若接收的信息为 0 1 1 0 1 1 1,G3G2G1=101,故第5位有错误,校验码海明校验码,4。海明校验码的逻辑电路实现和查错纠错的逻辑电路的实

25、现。(请同学们自己画出k=4、r=3时的海明电路编码和查错纠错电路),循环冗余码,用于多位串行数据传送中的检错纠错处理,在 k 位数据位串行移位输出的过程中,用带有异或门控制的移位寄存器形成r 个校验位的值,跟随在数据位之后传送。在接收端再对 k+r 位的码字进行合法与出错检查,若可能则自动改错。,循环冗余码模2四则运算,模2四则运算是以2为模,按位相加的运算,在运算中不考虑借位和进位。加减法:00=0,01=1,10=1,11=0 乘法:按模2加求部分积之和 除法:按模2 减求部分余数,1 0 1 0,1 0 1,1 0 1 0,0 0 0 0,1 0 1 0,1 0 0 0 1 0,1 0

26、 0 0 0,1 0 1,1,1 0 1,0 1 0,0,0 0 0,1 0,0,1,1 0 1,0 1,商,余数,循环冗余码循环码的编制原理,设待编码的有效信息以多项式M(x)表示,用约定的一个多项式G(X)去除,一般情况下能得到一个商Q(X)和余数R(X)M(x)=Q(x)G(x)+R(x)M(x)-R(x)=Q(x)G(x)显然,将M(x)减去余数R(x)就必定能为G(x)所除尽,因而可以设想让M(x)-R(x)作为编好的校验码送往目标部件,当从目标部件取得校验码时,仍用约定的多项式G(x)去除,若余数为0,表明接收的该校验码正确;若余数不为0,表明出错,再进一步由余数确定出哪一位出错,

27、从而加以纠正。,循环冗余码循环码的编制原理,例:对四位有效信息(1100)做循环校验编码,选择的生成多项式G(x)=1011。解:1.将待编码的N位有效信息码组表示为多项式M(x):M(x)=X3+X2=1100将M(x)左移r位,得M(x)xr,其目的是空出r位,以便拼装r位余数(校验位):M(x)x3=x6+x5=1100000 用r+1位的生成多项式G(x)对M(x)xr做模2除:,循环冗余码循环码的编制原理,G(x)=X3+X+1=1011(r+1=4)4.将左移r位后的待编有效信息与余数R(x)做模2加,即形成循环校验码。M(x)X3+R(X)=1100000+010=1100010

28、 此处编好的循环校验码称为(7,4)码,即k=7,n=4,可向目标部件发送。,循环冗余码循环码的编制原理,5.5.循环码的译码和纠错 接受部件将收到的循环校验码用约定的生成多项式G(x)去除,如果码字无误则余数为0,如果某一位出错则余数不为0,不同位数出错余数则不相同。,循环冗余码实现电路,串行数据D,上商 1 上商 0,线性分组(7,3)码,即3位数据加4位校验查表得到生成多项式:G(X)=X4+X2+X+1 T4 T3 T2 T1 T0CP+1 0 1 1 1 0 0 0 0 0,循环冗余码的实现电路,串行数据D,上商 1 上商 0,线性分组(7,3)码,即3位数据加4位校验查表得到生成多

29、项式:G(X)=X4+X2+X+1 T4 T3 T2 T1 T0CP+1 0 1 1 1 0 0 0 0 0,循环冗余码的实现电路,串行数据D,上商 1 上商 0 取决于触发器T4的输出,线性分组(7,3)码,即3位数据加4位校验查表得到生成多项式:G(X)=X4+X2+X+1 T4 T3 T2 T1 CP+1 0 1 1 1,循环冗余码的实现电路,串行数据D,上商 1 上商 0,1,0,线性分组(7,4)码,即4位数据加3位校验查表得到生成多项式:G(X)=X3+X+1 T3 T2 T1 T0CP+1 0 1 1 0 0 0 0,循环冗余码实现电路,串行数据D,上商 1 上商 0,线性分组(

30、7,4)码,即4位数据加3位校验查表得到生成多项式:G(X)=X3+X+1 T3 T2 T1 T0CP+1 0 1 1 0 0 0 0,线性分组(7,4)码,即4位数据加3位校验查表得到生成多项式:G(X)=X3+X+1 T3 T2 T1 T0CP,循环冗余码实现电路,串行数据D,上商 1 上商 0,线性分组(7,4)码,即4位数据加3位校验查表得到生成多项式:G(X)=X3+X+1 T3 T2 T1 CP+,循环冗余码-实现电路,串行数据D,上商 1 上商 0,作业,1.求下列数的奇校验码和偶校验码(1)1100111;(2)10101102.求0110;1110的海明校验码。3.设G(x)=1011,求1010、1101的循环冗余码(CRC).,谢谢同学们!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号