计算机组成原理中LD,计算机组成原理课件第三章计算机中的数据表示.ppt

253b171540df25e1b84436cbe50dfc72.gif计算机组成原理课件第三章计算机中的数据表示.ppt

第三章 计算机中数据的表示,学时6个学时 重点掌握各种数据的编码方法,主要内容,概述 字符编码 中文编码 逻辑数据 数值数据 校验码,概述,计算机中最重要的功能是处理信息,如数值、文字、符号、语言和图象等。计算机内部,各种信息都必须采用数字化编码的形式被传送、存储、加工。因此掌握信息编码的概念与处理技术是至关重要的。 所谓编码,就是用少量简单的基本符号,选用一定的组合规则,以表示出大量复杂多样的信息。,概述,常用的信息分为 定点数fixed-point 数值信息 浮点数floating-point 字符character 非数值信息 汉字Chinese character 逻辑数据logical data,字符编码,用一定位数的二进制数“0”和“1”进行编码给出。 常用的字符编码ASCII码。 ASCII (American Standard Code for Ination Interchange,字符编码,ASCII码是美国信息交换标准代码。 American Standard Code for Ination Interchange 包括0-9十个数字,大小写英文字母 及专用符号等95种可打印字符。,Computer,01000011 01101111 01101101 01110000 01110101 01110100 01100101 01110010,7 6 5 4 3 2 1,中文编码,汉字输入码为进行汉字输入,将汉字 代码化。 汉字机内码在计算机内部进行汉字处理。 汉字字型码汉字输出时的编码。国标码国家标准信息交换用汉字编码。国标码采用双字节的编码方式。,国标码收入6763个汉字,682个西文字符、图符,构成 9494 的矩阵。 (每一行为“区”,每一列为“位”国标区位码),机内码,“啊”区位码“1601” “1001H”,00010000 00000001,10010000 10000001,“啊”机内码“B0A1H”,中文编码,中文编码,字符代码化(输入),数字码 拼音码 字形码,中文编码,逻辑数据,逻辑型数据只有两个值真 和 假, 正好可以用二进制码的两个符号分别表示, 例如 1 表示 真 则 0 表示 假 不必使用另外的编码规则。 对逻辑型数据可以执行逻辑的 与 或 非等基本逻辑运算。其规则如下逻辑数据,X Y X与Y X或Y X的非 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0,数值数据,定点数 浮点数 十进制数串,数值数据定点数的表示方法,定点数定点纯小数和定点纯整数 定点纯小数约定小数点的位置隐含在符号位之后,最高数值位之前 定点纯整数约定小数点隐含在数值最低位的右边,简称定点整数。,数值数据定点数的表示方法,原码表示法Sign-Magnitude representation 补码表示法Twos Complement representation 反码表示法Nagation 移码表示法,数值数据定点数的表示法(原码),定点小数表示 Ns. N1 N2 Nn 定义 X 原 定点整数表示Ns N1 N2 Nn 定义 X 原 X,1 - X,0 X 1,-1 X 0X,2n - X,0 X 2n,- 2n X 0,数值数据定点数的表示法(原码),实例X1 0.10110 -0.10110 0.0000 X 原 010110 110110 00000 10000 实例X1 10110 -10110 0000 X 原 010110 110110 00000 10000,数值数据定点数的表示法(原码),性质 原码为符号位加数的绝对值,0正1负 原码零有两个编码,0和 -0编码不同 原码难以用于加减运算,但乘除方便 N1位二进制原码所表示的范围 小数MAX1-2-n ,MIN( 1-2-n ) 整数MAX 2n-1, MIN( 2n-1),数值数据定点数的表示法(补码),补码是在“模”和“同余”的概念下导出的。 “模”是指一个计量系统的计量范围,即产生“溢出”的量。,数值数据定点数的表示法(补码)现在是北京时间3点整,而时钟却指向5点。,5-23,5103(12自动丢失。12就是模)数值数据定点数的表示法(补码),继续推导 5-2510 (MOD 12) 5(-2)510 (MOD 12) -210 (MOD 12) 结论,可以说在模为12的情况下,-2的补码 就是10。 一个负数用其补码代替,同样可以得到正确的运算结果。,数值数据定点数的表示法(补码),进一步结论 在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果是n位整数,其模为2n。如果是n位小数,其模为2。 若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,数值数据定点数的表示法(补码),定义 任意一个X的补码为X补,可以用该数加上其模M来表示。 X补XM,数值数据定点数的表示法(补码),定点小数表示 Ns. N1 N2 Nn 定义 X 补 (MOD 2) 定点整数表示Ns N1 N2 Nn 定义 X 补 (MOD 2n1)X,2 X,0 X 1,-1 X 0X,2n1 X,0 X 2n,- 2n X 0,数值数据定点数的表示法(补码),实例X1 0.10110 -0.10110 0.0000 X 补 010110 101010 00000 实例X1 10110 -10110 0000 X 补 010110 101010 00000,数值数据定点数的表示法(补码),由于正数的补码就是正数本身,故着重讲解负数求补码的方法。,负数求补码,数值数据定点数的表示法(补码),(1)由定义求 例,X补2X,10-0.1101001,1.0010111数值数据定点数的表示法(补码),例 X- 1101001 解X补28X,100000000-1101001,10010111,反过来,由补码求真值,只要将公式进行交换即可。,数值数据定点数的表示法(补码),(2)由原码求补码 除符号位以外,其余各位求反,末位加1。 例X- 0.0101011 解,X原 1 0 1 0 1 0 1 1,X补,1,1,1,1,0,0,0,0,,11 1 0 1 0 1 0 1,由补码求原码,此规则同样适用。数值数据定点数的表示法(补码),由原码求补码的简便原则 除符号位以外,其余各位按位取反,从最低位开始遇到的第一个1以前的各位保持不变。,例X原 1 1 0 1 1 0 1 0 0,X补,1 0 1 0 0 1,1 0 0,1 0 0,由-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,,10 0 1 0 1 0 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的补码是唯一的 补码便于加减运算 n1位补码所能表示的数 小数MAX1-2-n ,MIN1 整数MAX 2n-1, MIN 2n,数值数据定点数的表示法(反码),定点小数表示 Ns. N1 N2 Nn 定义 X 反 定点整数表示Ns N1 N2 Nn 定义 X 反 X,(2-2-n ) X,0 X 1,-1 X 0X,( 2n1 1) X,0 X 2n,- 2n X 0,数值数据定点数的表示法(反码),由原码求反码,如果X为正数,则X反X原;如果X为负数,则将X原除符号位以外,每位都变反,可得到X反。 实例X1 0.10110 -0.10110 0.0000 X 反 010110 101001 00000 11111 实例X1 10110 -10110 0000 X 反 010110 101001 00000 11111,数值数据定点数的表示法(移码),对于n1位数Ns N1 N2 Nn 定义 X 移 2nX 由于移码是在原值X上加一个2n,所以也称为增码,因此,符号为1时,表示正数,符号为0时,表示负数。 X1101010,X移27X 11101010-2n X 2n,数值数据定点数的表示法(移码),由X补求X移只要将X补的符号位求反,就可得到X移。 性质 若X1移X2移,则有 X1X2数值数据浮点数表示法,定义 任意一个R进制都可以通过移动小数点的位置写成 NRE*M 式中 R式基数,可以取2,8,16,一旦定义则不能改变,是隐含的。 M是纯小数 (含数的符号),称为尾数,表示数N的全部有效数字。 E是阶码,纯整数,制粗小数点在该数中的位置。 由于阶码可以取不同的数值,所以,小数点的位置是不确定的,这种数被称为浮点数。,数值数据浮点数表示法,由于基数在系统中是隐含约定的,不需要用代码表示,所以浮点数只需用一对定点数(阶码和尾数)表示,其中,符号表示数的正负,阶码表示小数点的位置,而尾数表示有效数字。,数值数据浮点数表示法,表数范围 设l和n分别表示阶码和尾数的位数(均不包含符号位),阶码和尾数均用原码表示,则浮点数的表示范围是 -22l-1(1-2-n)N2 2l-1(1-2-n),思考如果尾数和阶码各用补码表示,则浮点数的表数范围如何,数值数据浮点数表示法,定义 所谓规格化数,就是非0的尾数,其绝对值 应大于或等于05。 判别方法 如果用原码表示,规格化数的尾数应满足 1/2|S|S-1,这样,用补码表示的规格化尾数即为尾数数值最高位与符号位相反。 规格化 存储在计算机中的浮点数以及运算结果的浮点数都应为规格化数,如果尾数不是规格化数,要用移位方法把他变为规格化数,这种处理过程,称为规格化。,数值数据浮点数表示法,IEEE754标准 IEEE754标准定义了四种浮点数的基本格式单精度格式、扩展单精度格式、双精度格式、扩展双精度格式。 对于规格化的浮点数,IEEE754规定在小数点的左边有一隐含位(作为二进制整数的个位)。由于该位为1,不需要存储,在运算时,自动加上该位参加运算。,请同学们自学IEEE754标准下面的知识不好理解,请特别专心,休息1分钟,看个小故事、陈阿土,陈阿土是台湾的农民,从来没有出过远门。攒了半辈子的钱,终于参加一个旅游团出了国。国外的一切都是非常新鲜的,关键是,陈阿土参加的是豪华团,一个人住一个标准间。这让他新奇不已。早晨,服务生来敲门送早餐时大声说道 “GOODMORNINGSIR”陈阿土愣住了。这是什么意思呢在自己的家乡,一般陌生的人见面都会问“您贵姓”于是陈阿土大声叫道“我叫陈阿土”如是 这般,连着三天,都是那个服务生来敲门,每天都大声说“GOODMORNINGSIR” 而陈阿土亦大声回道“我叫陈阿土”但他非常的生气。这个服务生也太笨了,天天问自己叫什么,告诉他又记不住,很烦的。终于他忍不住去问导游,GOODMORNINGSIR”是什么意思,导游告诉了他,天啊真是丢脸死了。陈阿土反复练习“GOODMORNINGSIR”这个词,以便能体面地应对服务生。又一天的早晨,服务生照常来敲门,门一开陈阿土就大声叫道“GOODMORNINGSIR”与此同时,服务生叫的是“我是陈阿土”,这个故事告诉我们,人与人交往,常常是意志力与意志力的较量。不是你影响他,就是他影响你,而我们要想成功,一定要培养自己的影响力,只有影响力大的人才可以成为最强者。校验码,为了提高计算机的可靠性,除了采取选用更高可靠性的器件,更好的生产工艺等措施之外,还可以从数据编码上想一些办法,即采用一点冗余的线路,在原有数据位之外再增加一到几位校验位,使新得到的码字带上某种特性,之后则通过检查该码字是否仍保持有这一特性,来发现是否出现了错误,甚至于定位错误后,自动改正这一错误,这就是我们这里说的检错纠错编码技术。,校验码,先介绍一个基本概念 码距是指两个合法码之间至少有几位二进制位不相同。,校验码,三种常用的检错纠错码 奇偶检错码 用于并行数据传送中 海明检错与纠错码 用于并行数据传送中 循环冗余码 用于串行数据传送中,校验码奇偶校验码,奇偶校验码用于并行码检错 原理在 k 位数据码之外增加 1 位校验位, 使 K1 位码字中取值为 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 原有数字位 两个新的码字,偶校验,奇校验,校验位,校验码奇偶校验码,,奇偶校验码的实现电路 奇较验 偶校验 出错指示,,,,同左侧电路,P 校验位,八位数据位D7 D6 D5 D4 D3 D2 D1 D0,p,译码电路,编码电路,校验码海明校验码,海明校验码是由Richard Hamming于1950年提出的。这种编码能纠正一位出错,并能自动恢复出错位的校验码。 海明不等式2rkr1 如要能检测与自动校正一位错,并能发现两位错,此时校验位的位数r和数据位的位数k应满足下述关系 2r-1kr,校验码海明校验码,数据位和校验位的对应关系表,校验码海明校验码,海明码的编码规则 1.校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号为2i-1的位置,其余各位为数据位,并按 从低位向高位逐位依次排列的关系分配各数据位. 2.海明码的每一位码Hi由多个校验位校验,其关系是被校验的每一个位位号要等于校验它的各校验位的位号之和. 3.在增大合法码的码距时,使所有码的码距尽量均匀的增大,以保证对所有码的验错能力平衡提高.,校验码海明校验码,举例为一个8位二进制树编海明码。 K8,r5 解(1)根据规则1,Pi应放在1,2,4,8,16的位置上。即,13 12 11 10 9 8 7 6 5 4 3 2 1,P5D8D7D6D5P4D4D3D2P3D1P2P1,校验码海明校验码,(2)根据规则2,校验码海明校验码,5个校验位只与本身有关,数据位则与多个校验位有关。D1由P1和P2校验,D3由P2和P4校验等。 P1校验D1、D2、D4、D5、D7 P2校验D1、D3、D4、D6、D7 P3校验D2、D3、D4、D8 P4校验D5、D6、D7、D8 P5校验D1、D2、D3、D5、D6、D8。 当一位数据发生变化时,必将引起三个Pi的变化,即合法海明码的码距都是4。,校验码海明校验码,按偶校验写出校验方程,校验码海明校验码,举例假设要传诵的数据为10110110。 根据校验方程,求得 P10,P20,P31,P41,P51 所以,海明码为1101110111000,校验码海明校验码,检错和纠错 当S1-S5全为零时,表明无错。 当S1-S5中仅有一位不为0时,说明有一个校验位出错。 当有两位不为0时,表明两位海明码出错。 当三位不为0时,表明一个数据位出错。出错的为数由S4-S1四位得编码值指明。,循环冗余码,用于多位串行数据传送中的检错纠错处理,在 k 位数据位串行移位输出的过程中,用带有异或门控制的移位寄存器形成r 个校验位的值,跟随在数据位之后传送走。在接收端再对 kr 位的码字进行合法与出错检查,若可能则自动改错。,循环冗余码模2四则运算,模2四则运算是以2为模,按位相加的运算,在运算中不考虑借位和进位。 加减法000,011,101,110 乘法按模2加求部分积之和 除法按模2 减求部分余数,1 0 1 01 0 11 0 1 0,0 0 0 0,1 0 1 01 0 0 0 1 0,1 0 0 0 0,1 0 1,1,1 0 10 1 0,0,0 0 01 0,0,1,1 0 10 1,商,余数,循环冗余码循环码的编制原理,设待编码的有效信息以多项式Mx表示,用约定的一个多项式GX去除,一般情况下能得到一个商QX和余数RX MxQxGxRx Mx -RxQxGx 显然,将Mx减去余数Rx就必定能为Gx 所除尽,因而可以设想让Mx-Rx作为编好的校验码送往目标部件,当从目标部件取得校验码时,仍用约定的多项式G(x)去除,若余数为0,表明该校验码正确;若余数不为0,表明出错,在进一步由余数确定出哪一位出错,从而加以纠正。,循环冗余码循环码的编制原理,例对四位有效信息(1100)做循环校验编码,选择的生成多项式G(x)1011。 解将待编码的N位有效信息码组表示为多项式M(x) M(x)X3X21100 将M(x)左移r位,得M(x)xr,其目的是空出r位,以便拼装r位余数(校验位) M(x)x3x6x51100000 用r1位的生成多项式G(x)对M(x)xr做模2除,循环冗余码循环码的编制原理,G(x)X3X11011 (r14) M(x)X3 1100000 1110 010 G(x) 1011 1011 4. 将左移r位后的待编有效信息与余数Rx做模2加,即形成循环校验码。 M(x)X3R(X)11000000101100010 此处编好的循环校验码称为(7,4)码,即k7,n4,可向目标部件发送。循环冗余码循环码的编制原理,5. 5. 循环码的译码和纠错 接受部件将收到的循环校验码用约定的生成多项式G(x)去除,如果码字无误则余数为0,如果某一位出错则余数不为0,不同位数出错余数则不相同。,循环冗余码实现电路串行数据D上商 1 上商 0线性分组(7,3)码,即3位数据加4位校验 查表得到生成多项式G(X)X4X2X1 T4 T3 T2 T1 T0 CP 1 0 1 1 1 0 0 0 0 0循环冗余码的实现电路串行数据D上商 1 上商 0线性分组(7,3)码,即3位数据加4位校验 查表得到生成多项式G(X)X4X2X1 T4 T3 T2 T1 T0 CP 1 0 1 1 1 0 0 0 0 0,循环冗余码的实现电路,串行数据D,上商 1 上商 0 取决于触发器T4的输出线性分组(7,3)码,即3位数据加4位校验 查表得到生成多项式G(X)X4X2X1 T4 T3 T2 T1 CP 1 0 1 1 1,循环冗余码的实现电路,串行数据D,上商 1 上商 0,1,0,线性分组(7,4)码,即4位数据加3位校验 查表得到生成多项式G(X)X3X1 T3 T2 T1 T0 CP 1 0 1 1 0 0 0 0,循环冗余码实现电路串行数据D,上商 1 上商 0,线性分组(7,4)码,即4位数据加3位校验 查表得到生成多项式G(X)X3X1 T3 T2 T1 T0 CP 1 0 1 1 0 0 0 0线性分组(7,4)码,即4位数据加3位校验 查表得到生成多项式G(X)X3X1 T3 T2 T1 T0 CP,循环冗余码实现电路串行数据D,上商 1 上商 0,线性分组(7,4)码,即4位数据加3位校验 查表得到生成多项式G(X)X3X1 T3 T2 T1 CP ,循环冗余码-实现电路串行数据D,上商 1 上商 0,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值