收藏 分享(赏)

第2章 运算方法和运算器.ppt

上传人:fmgc7290 文档编号:6221895 上传时间:2019-04-02 格式:PPT 页数:162 大小:3.77MB
下载 相关 举报
第2章 运算方法和运算器.ppt_第1页
第1页 / 共162页
第2章 运算方法和运算器.ppt_第2页
第2页 / 共162页
第2章 运算方法和运算器.ppt_第3页
第3页 / 共162页
第2章 运算方法和运算器.ppt_第4页
第4页 / 共162页
第2章 运算方法和运算器.ppt_第5页
第5页 / 共162页
点击查看更多>>
资源描述

1、第二章 运算方法和运算器,2.1 数据与文字的表示方法 (掌握) 2.2 定点加法、减法运算 (掌握) 2.3 定点乘法运算 (掌握) 2.4 定点除法运算 (掌握) 2.5 定点运算器的组成 (了解) 2.6 浮点运算方法和浮点运算器(理解)要求:掌握定点和浮点数的表示方法,表示范围,掌握常用的定点乘法和除法的运算方法,浮点数加法和减法的运算法,掌握数据校验的方法,理解溢出判断方法,运算器部件的组成结构及设计方法。,第二章 运算方法和运算器,内容及要求,学习要点 数据编码 数值数据的数制 数值数据的机器码表示 浮点数的表示 运算方法 定点运算 溢出处理 浮点加减法 数据校验,第二章 运算方法

2、和运算器,2.1 数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码,问题:,1、数的分类?,(1)按照进制分为:二进制、十进制、八进制、十六进制等等。,预备知识,(2)按照数值类型分为:无符号数和有符号数。,(3)按照小数点约定的方式分为:定点数和浮点数。,无正负问题,直接用二进制表示,有正负问题,定点表示法,符号,数值, 纯小数: a、定点小数表示: Ns. N1 N2 Nn(原码、反码、补码) b、范围:0.0000 | X | 0.11111即:0 | X |1-2-n,n位,1位,

3、由于约定在固定的位置,小数点就不再使用记号“.”来表示。,2.1.1 数据格式, 纯整数,a、定点整数表示:Ns N1 N2 Nn (原码、反码、补码) b、范围:0 | X | 1111即:0 | X | 2n-1,2.1.1 数据格式,浮点数:小数点位置可变。,2.1.1 数据格式,十进制数的科学计数法如A= -3.5105在高级语言中表示为:-3.5E5十进制数5也可以表示为:1.254=1.2522在高级语言中表示为:1.25E2用二进制表示:1.01E10如果用机器表示这种数,就叫浮点数。,浮点数:小数点位置可变。,(1) 定义 N= R e M其中 M:尾数( mantissa )

4、 ,是一个纯小数 。R: 基数( radix) ,计算机中默认为2,一般省略。e: 指数( exponent ) ,是一个整数 。 (2)一般表示形式:,浮点数:小数点位置可变。,(3)IEEE754 标准格式 (要求掌握32位格式):其真值表示为:x=(1)S(1.M)2E127 eE127IEEE754标准的32位浮点格式中:浮点数的符号位,占1位,也就是尾数的符号位。:尾数,23位,用原码表示,假想小数点在尾数域的最前面,并且假想小数点左边始终有一个1(叫隐藏位)。因此此尾数的绝对值肯定大于等于1小于2。(最小:23位全部是0,最大:23位全部是1):阶码(8 位),用移码表示(有偏移值

5、的编码, IEEE754 规定偏移值为+127,即比实际值多127)。,IEEE754 标准格式 (64位格式):其真值表示为:x=(1)S(1.M)2E1023 eE1023,高级语言的float、double使用的即是IEEE754规定的格式。 float :32位浮点值,也叫单精度浮点数(4字节保存) double:64位浮点值,也叫双精度浮点数(8字节保存) 单精度浮点数的例子:,(3)IEEE754 标准格式(续),IEEE754 标准中,阶码值从1到254代表的实际值为-126至+127,而阶码值0和255有特殊含义。 正零、负零:E与M均为零,正负之分由符号确定。 正负无穷:E为

6、全1,M为全零。 另外一个概念: 机器零:当浮点数的尾数为 0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。,(3)IEEE754 标准格式(续),例1 若浮点数的IEEE754标准存储格式为(41360000)16,求其浮点数的十进制数值。,首先分别将整数和分数部分转换成二进制数:20.5937510100.10011然后移动小数点,使其在第1,2位之间10100.100111.01001001124 e4于是得到:S0, E4127131, M010010011最后得到32位浮点数的二进制存储格式为:0100 00

7、01 1010 0100 1100 0000 0000 0000 (41A4C000)16,例2 将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。,求解技巧,例如:将下列十进制数表示成IEEE754格式的32位浮点数二进制存储形式。 (1)27/32 (2) 11/512 求解:(1)27/32=27*(1/32) = (11011)2*2-5(2)11/512= (1011)2*2-9,练习:1、将20.1875转换成32位浮点数存储?2、若浮点数的二进制存储格式为(41A18000)16,求 其十进制值? 作业:将十进制数17.296875转换成IEEE754格式

8、的32位浮点数的二进制存储。,课堂练习和补充习题,浮点数:小数点位置可变。,(4)浮点数的规格化 1)尾数用原码表示时:尾数最高数值位为1的数叫规格化数。即正数的尾数形式为0.1的形式。负数的尾数形式为1.1的形式。(如,0.01125要规格化则左移一位变为0.1124; 0.01125要规格化则左移一位变为1.1124)2)尾数用补码表示时:尾数最高数值位和尾数符号位相反的数叫规格化数。即正数的尾数形式为0.1的形式。负数的尾数形式为1.0的形式。 (如,0.01125要规格化则左移一位变为0.1124; 0.01125要规格化则补码1.10125左移一位变为1.0124)3)若是非规格化数

9、:可通过修改阶码、左右移尾数的方法使其变为规格化数.,移位运算 1、逻辑移位逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0; 2、算术移位正数: 同逻辑移位。负数:原码:符号位不变,数值部分空出的位添0补码:符号位不变,左移时,数值部分空出的位添0右移时,数值部分空出的位添1反码:符号位不变,数值部分空出的位添1注意:算术左移时,若改变符号位,则溢出。未改变时,相当于乘以2。,移位操作举例,例:已知x补=0.1011,y补=1.1011,求算术左移、算术右移、逻辑左移和逻辑右移后的结果。 解答:(1)算术左移:x补=1. 0110(溢出) y补=1.0110(2)算术右移:x补

10、=0. 0101 y补=1.1101(3)逻辑左移:x补=1. 0110 y补=1.0110(4)逻辑右移:x补=0. 0101 y补=0.1101,浮点数:小数点位置可变。,(5)浮点数的表示范围 由浮点数N= R e M,可见浮点数由阶码e和尾数M两部分组成。,1)阶码是整数,阶符和阶码的位数m合起来反映浮点数的表示范围及小数点的实际位置;2)尾数是小数,其位数n反映了浮点数的精度。 具体举例见后。,字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。 压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省

11、存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。,十进制数串的表示方法,2、真值和机器数是对于 而言的。A. 无符号数 B. 有符号数,B.有符号数,3、什么是真值和机器数?,问题:,预备知识,答:真值用正负号表示的实际值,用各种进制均可以表示。机器数用固定长度的二进制编码表示实际值(包括正负号)。,2.1.2 数的机器码表示,重点: 1:原码、反码、补码、移码的表示形式 2:补码的定义 3:原码、反码、补码、移码的表示范围,定点小数的原码定义:x 0x 1【x】原 1-x1+|x| -1 x 0定点整数的原码定义:x 0x 2n【x】原 2n-x2n+|x| -2nx

12、 0,原码的表示,特点:1)0有两种表示法:+0原 = 0000-0原 = 10002)表示范围 定点小数:-1X1定点整数: -2nX2n (若n=3即:-8X8),问题:当-1X0时, X原 = 。A. 1-x B. x C. 2+x D. (2-2-n)-|x|,A,原码的表示,定点小数的反码定义:x 0x 1【x】反 (22-n)x -1 x 0定点整数的反码定义:x 0x 2n【x】反 (2n11)x -2nx 0,反码的表示,特点:1)原码求反码方法:正数: x原 = x反 = x负数: 符号位不变,其余各位变反2)表示范围 定点小数:-1X1定点整数: -2nX2n (若n=3即

13、:-8X8),问题:8位反码表示定点整数的最小值为= ,最大值为 。,反码的表示,现在是北京时间3点整,而时钟却指向5点。,5-2=3,5+10=3(12自动丢失。12就是模),定点补码表示法,继续推导:5-2=5+10(MOD 12)5+(-2)=5+10(MOD 12)-2=10(MOD 12) 结论:,可以说:在模为12的情况下,-2的补码就是10。一个负数用其补码代替,同样可以得到正确的运算结果。,定点补码表示法,进一步结论:在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果是n位整数,其模为2n。若为小数则其模为2。若运算结果超出了计算机所能表示的数值范围,则只保留它

14、的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,定点补码表示法,定点小数的补码定义:x 0x 1【x】补 2x 2|x| -1x 0定点整数的补码定义:x 0x 2n【x】补 2n1x 2n1|x| -2nx 0,补码的表示,由于正数的补码是自身,所以主要讲负数求补码的方法。 (1)由定义求 例:,X补=2+X,=10+(-0.1101001),=1.0010111,求补码的几种方法,例: X=- 1101001解:,X补=28+X,=100000000+(-1101001),=10010111,反过来,由补码求真值,只要将公式进行交换即可。,(2)由原码求补码 除符号位以外,其余各

15、位求反,末位加1。 例:X= - 0.0101011 解:,X补= 1 1 0 1 0 1 0 0,+,1,1 1 0 1 0 1 0 1,由补码求原码,此规则同样适用。,X原= 1 0 1 0 1 0 1 1,由原码求补码的简便原则:除符号位以外,其余各位按位取反,从最低位开始遇到的第一个1以前的各位保持不变。,例:X原= 1 1 0 1 1 0 1 0 0,X补=,1 0 1 0 0 1,1 0 0,由-X补求X补,此规则同样适用。,(3)由X补求-X补:连符号位一起各位求反,末位加1。 例:X补=1.1010101 解:,X补= 1 1 0 1 0 1 0 1,-X补=0 0 1 0 1

16、 0 1 0,+,1,0 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补吗?,特点:1)0有唯一的表示法:X 补= 0000 (X 补= 1000 的真值为 8)2)表示范围 定点小数:-1X1定点整数: -2nX2n (即:-8X8)3)X+Y补=X补Y补 (模2) (针对小数)该结论为电路实现提供了依据。即任何、运算均可变为加法,无需区分符号位,只要不溢出,即是正确结果

17、。4)算术右移时,只要保持原符号位不变,即可实现除法。如 X = -0.0110则 X补 = 11010x/2补 = 11101 即-0.0011(真值),补码的表示,5) 为判断是否溢出,也可用变形补码X 0x1X补=4+X -1x0 符号位从00到11有4种状态两符号位相同无溢出: 00为正,11为负两符号位不同为溢出: 01为上溢, 两正数相加溢出10为下溢,两负数相加溢出6) 原码求补码正数 x补=x原=x负数 符号位不变,其余按位求反后再在末位加17) 补码求原码x补补 = x原,补码的表示,移码通常用于表示浮点数的阶码。由于阶码是个n位的整数,所以移码的传统定义为:【x】移 2nx

18、 -2n x 2n 比如,若阶码数值部分为5位,则【x】移 25x当x10101时, 【x】移 1,10101当x 10101时, 【x】移 25 10101 0,01011,移码的表示,特点:1)0有唯一的移码:0 移= 0 移= 1000 2)最高位为符号位,1表示正,0表示负 3)与x补的区别,只需将符号位变反即可,注意:传统定义和IEEE754定义不同。4)用移码表示便于比较数的大小,移码大真值就大,移码小真值就小。,移码的表示,举例,【例1】将十进制数-54表示成二进制定点数(16位)和浮点数(16位,其中数值部分10位,阶码部分4位,阶符和数符各取1位),并写出它在定点机和浮点机中

19、的机器数形式。 解:令 x = -54 即 x= - (32+16+4+2) 二进制形式: x = -110110定点数表示: x = -0000110110浮点数规格化表示:x = -(0.1101100000)2110定点机器数形式:x原:1 000 0000 0011 0110x补:1 111 1111 1100 1010x反:1 111 1111 1100 1001浮点机器数形式:x原:0 0110 1 11 0110 0000x补:0 0110 1 00 1010 0000x反:0 0110 1 00 1001 1111,【例2】(浙江大学试题)计算机储存程序的特点之一是把数据和指令

20、都作为二进制信号看待。今有一计算机字长32bit,数符位是第31bit;单精度浮点数格式如图所示。对于二进制数1000 1111 1110 1111 1100 0000 0000 0000表示一个补码整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少?表示一个IEEE754标准的单精度浮点数,其值是多少?,举例,【解答】对于二进制数1000 1111 1110 1111 1100 0000 0000 0000表示一个补码整数,其对应的原码是1111 0000 0001 0000 0100 0000 0000 0000其十进制值是 -(230+ 229 +228 + 220 + 216

21、 )表示一个无符号整数,其十进制值是231+ 227+ 226 +225 + 224 + 223+ 222 +221 + 219 +218 + 217 +216 + 215 +214表示一个IEEE754标准的单精度浮点数,其阶码是0001 1111,指数e阶码1270001 11110111 1111-1100000(-96)10包含隐藏位1的尾数1.M=1. 110 1111 1100 0000 0000 0000=1.110 1111 11单精度浮点数值为:X (-1)s1.M2e-(1.110 1111 11)2-96 -(0.1110 1111 11)2-95 -(1416-1151

22、6-21216-3)2-95-0.31152-95,举例,【例3】以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,设n=8则:,原码:,正数:,0000 0000(+0),0111 1111(+127),共128个,负数:,1000 0000(-0),1111 1111(-127),共128个,共256个, 一个字节8位(即n=8), 共能表示256个数,即:-127127,反码:,正数:,0000 0000(+0),0111 1111(+127),共128个,负数:,1111 1111(-0),1000 0000(-127),共128个,共256个, 一个字节8

23、位(即n=8), 共能表示256个数,即:-127127,补码:,正数:,0000 0000(+0),0111 1111(+127),共128个,负数:,1111 1111(-1),1000 0001(-127),共127个,共255个, 一个字节8位(即n=8),共能表示256个数,多出1000 0000表示-128,-128补=,1000 0000,举例,【例4】将十进制真值(127,1,0,1,127)列表表示成8位二进制数及原码、反码、补码、移码值。,举例,【例5】设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定

24、点原码小数表示时,最大正数是多少?最小负数是多少?,数的机器码,1.数的原码、反码和补码表示范围。 假设总共有n+1位(1位符号位、n位数值位) 定点整数: 最大正数:2n 1 (原码) 最小负数: -(2n 1 ) 定点整数: 最大正数: 2n 1 (补码) 最小负数: -2n 定点小数: 最大正数: 12n (原码) 最小负数: -(12n )定点小数: 最大正数: 12n(补码) 最小负数: 1,2009考研真题,12.一个C语言程序在一台32位机器上运行。程序中定义了三个变量x,y和z,其中x和z是int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和

25、z的值分别是:D x=0000007FH, y=FFF9H,z=00000076H x=0000007FH, y=FFF9H,z=FFFF0076H x=0000007FH, y=FFF7H,z=FFFF0076H x=0000007FH, y=FFF7H,z=00000076H,举例,【例6】假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为:问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,【例题7】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。 【解答】 1)最大正数

26、非规格化数形式:最大正数为0.1112111即(129)231规格化数形式:最大正数为0.1112111即(129)231,举例,2)最小正数当为非规格化数原码时: 最小正数为0.0012000即2(25)29= 2-32 29规格化原码时:(与不同) 最小正数为0.00121即2(25)21 233,3)最小负数非规格化原码时: 最小负数为0.1112111即2(251)(129)= 231 (129)规格化原码时:(与相同) 最小负数为0.1112111即2(251)(129) = 231 (129),4)最大负数非规格化原码时: 最大负数为0.001200.0即2(25)29 = 2-3

27、2 29规格化原码时:(与不同) 最大负数为0.00121即2(25)21 = 2-32 21,【例题8】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。 【解答】1)最大正数即:阶码最大、尾数最大 最大正数为0.1112111即(129)231,举例,2)最小正数 最小正数为0.1000232即2-3221 2-33注意:不是 因为0.01 2-32不是规格化数。,3)最小的负数 最小负数为1.000231即231(1)= 231 4)最大的负数 最大负数为0.1001232即( 29+ 21 )232 注意:不是,浮点数表示范

28、围总结,若某机字长为m+n位,其中阶码m位(含一位符号位),尾数n位(含一位符号位),设a= 2m-1 1,b= 2m-1,则规格化数所能表示的范围为: 最大正数: (1 2-(n-1)) 2a 最小正数: 212b 最大负数: ( 2-(n-1) + 21 )2b 最小负数: (1)2a 例如:m=8,n=24,则设a=127,b=-128,则表示范围是: 最大正数: (1 2-23) 2127 最小正数: 212-128 最大负数: ( 2-23+ 21 )2-128 最小负数: (1)2127,2.1.3 字符和字符串的表示方法,ASCII码(美国国家信息交换标准字符码)包括128个元素

29、,因此二进制编码需7位,加一位偶校验位,共8位一个字节。ASCII码规定8个二进制位的最高一位为0,余下的7位可以给出128个编码。 字符串指连续的一串字符, 每个字节存一个字符。当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。,2.1.4 汉字的表示方法,1.汉字的输入编码目的:为了能直接使用西文标准键盘把汉字输入到计算机 。 分类:主要有三类,分别是数字编码、拼音码 、字形编码2.汉字内码 用于汉字信息的存储、交换、检索等操作的机内代码3.汉字字模码用点阵表示的汉字字形代码,用于汉字的

30、输出。,中文编码,字符代码化(输入),数字码 拼音码 字形码,2.1.5 校验码(数据校验),数据校验原因:为减少和避免数据在计算机系统运行或传送过程中发生错误,在数据的编码上提供了检错和纠错的支持。定义:这种能够发现某些错误或具有自动纠错能力的数据编码称为数据校验码或检错码。数据校验的基本原理是扩大码距。码距:根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1。,举例:用四位二进制表示16种状态,则16种编码都用到了,此时码距为1,就是说任何一种状态的四位码中的一位或几位出错,就变成另一个合法码,此时无查错能力。若用四位二进制表示8个状态,就可以只用其中的8种

31、编码,而把另8种编码作为非法编码,此时码距为2。,原理:在每组代码中增加1个冗余位,使合法编码的最小码距由1增加到2。如果合法编码中有奇数个位发生了错误,这个编码就将成为非法的代码。增加的冗余位称为奇偶校验位。(1)校验码的构成规则偶校验:每个码字(包括校验位)中1的数目为偶数。奇校验:每个码字(包括校验位)中1的数目为奇数。(2)校验位的形成设有效信息为D7D6D5D4D3D2D1D0,则偶校验:在发送端求校验位P=D7D6D5D4D3D2 D1 D0奇校验:在发送端求校验位P=D7D6D5D4D3D2 D1 D0,奇偶校验码,(3)校验原理偶校验:在接收端求校验位P=D7D6D5D4D3D

32、2 D1 D0 P奇校验:在接收端求校验位P=D7D6D5D4D3D2 D1 D0 P若P0,则无错;若P1,则有错。一般采用异或电路得到校验位。这种方式只能发现奇数个错误,且不能纠正错误。,奇偶校验码,如10101011,求校验码,偶校验码10101011 1,奇校验码10101011 0,字,校验位,校验码,例1: 数据0010 00010111 0101,奇校验码,0010 0001,1,偶校验码,0010 0001,0,0111 0101,0,0111 0101,1,例2:数据 : 0111 0101,偶校验码,0111 0101,1,发送端,(门电路),0110 0101,0,接收端

33、,出错,例3:数据 : 0111 0101,奇校验码,0111 0101,0,发送端,(门电路),0110 0111,0,接收端,正确,奇偶校验只能发现 奇数个错误,且不能 纠正错误!,原理:将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶测试。在一个数据位组中加入几个校验位,增加数据代码间的码距,当某一位发生变化时会引起校验结果发生变化,不同代码位上的错误会得出不同的校验结果。海明码能检测出错误,并能纠正1位错误。 2位1、求海明码的步骤(1)确定海明校验位的位数设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式:NKr2r1 通常用(N,K)表示若要求海明码能

34、检测出2位错误,则再增加1位校验位。,海明码,问题: (7,4)海明码表示的码字长度为 ,校验位数为 。,7,3,(2)确定校验位的位置位号(1N)为2的权值的那些位,即20,21,22,2r1的位置作为校验位,记作P1,P2 , ,Pr,余下的为有效信息位。(3)分组将N位分r组,第i位由校验位号之和等于i的那些校验位所校验。(4)校验位的形成P1第一组中所有位(除P1)求异或P2第二组中所有位(除P2)求异或 ,Pr 第r组中所有位(除Pr)求异或为了能检测两个错误,增加一位校验Pr1,放在最高位。Pr 1所有位(包括P1,P2 , , Pr)求异或,海明码,2、校验原理:在接收端分别求S

35、1,S2,S3,SrS1第一组中所有位(包括P1)求异或S2第二组中所有位(包括P2)求异或 ,Sr 第r组中所有位(包括Pr)求异或Sr 1 Pr 1 所有位(包括P1,P2 , , Pr)求异或当Sr 11时有一位错,由Sr S3 S2S1 的二进制编码指出出错位号,将其取反,即可纠错。当Sr 10时无错或有偶数个错(两个错的可能性比较大),当Sr S3 S2S1 0 0 00时,接收的数无错,否则有两个错。,海明码,【例9】有一个(7,4)码,写出代码0011的海明校验码。 【解】确定海明校验位的位数因为是(7,4)码,所以N7,K4,校验位的位数为3。 确定校验位的位置位号(17)为2

36、的权值的那些位,即20、21、22的位置作为校验位,即ii:7 6 5 4 3 2 1D3 D2 D1 P3 D0 P2 P1 分组(N位分r组),校验位的形成 P1=D3 D1 D0 0110P2=D3 D2 D0 0011P3=D3 D2 D1 0011为了能检测两个错误,增加一位校验P4,放在最高位。P4=D3 D2 D1 D0 P1 P2 P3 001 1 01 1 0所以,信息码0011的海明校验码为:0 001 1 1 10 校验原理在接收端,分别求S1、S2、S3、S4。S1P1 D3 D1 D0 0 0110S2P2 D3 D2 D0 1 0010S3P3 D3 D2 D1 1

37、 0010S4P4 D3 D2 D1 D0 P1 P2 P3 0 001 1 011 0当S4=1时有一位错:由S3S2S1的二进制编码指出出错位号。例如, S3S2S1 =101,说明第5位出错,将其取反,即可纠错。当S4=0时无错或有偶数个错(两个错的可能性较大),当S4S3S2S1 =0000时,接收的数无错,否则有两个错。,【解】确定海明校验位的位数因为K8, 由NKr 2r1,得9r 2r,校验位的位数为r4。 确定校验位的位置位号(112)为2的权值的那些位,即20、21、22 、23 的位置作为校验位,即ii:12 11 10 9 8 7 6 5 4 3 2 1D7 D6 D5

38、D4 P4 D3 D2 D1 P3 D0 P2 P1 分组(N位分r组),校验位的形成 P1=D6 D4 D3 D1 D0 1; P2=D6 D5 D3 D2 D0 1P3= D7 D3 D2 D1 1 ; P4=D7 D6 D5 D4 0所以,信息码10101011的海明校验码为:1010 0 101 1 1 11,【练习】设待校验的数据为D7D010101011,写出其海明校验码。,2.2 定点加法减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检验方法 2.2.4 基本的二进制加法、减法器,2.2.1 补码加法,1、采用补码运算。基本公式:定点整数:x补 +

39、y补 = x+y补 (mod 2n+1)定点小数:x补 + y补 = x+y补 (mod 2)其中x、y正负均可。 2、证明(1)证明依据:补码的定义(P24)(2)证明思路:分三种情况。(a) x、y均为正值(0,0)(b) x、y一正一负(0,0 或者0) (c) x、y均为负值(0,0),2.2.1 补码加法,证明: (a)0,0 补补补 (mod 2) (b)0,0,2.2.1 补码加法,(c)0,0,2.2.1 补码加法,例10 0.1001, 0.0101, 求。 解:补0.1001, 补0.0101补 0.1001补 0.0101补 0.1110 所以 0.1110,例11 x0

40、.1011, 0.0101,求。 解: 补0.1011, 补1.1011 补 0.1011 补 1.1011 补 10.0110 所以 0.0110,丢掉,补码加法的特点,(1)符号位要作为数的一部分一起参与运算。 (2)对于补码小数相加,要在模2的意义下相加,即超过2的进位要丢掉。对于补码整数相加,要在模2n+1的意义下相加,即超过2n+1的进位要丢掉。,2.2.2 补码减法,仍可以用补码加法运算。基本公式:补补补补补依据:只需要证明 补补, 补补补 (mod 2) 补 补补 (2.19a) 补()补补补 补 补补 (2.19b) 将式(2.19a)与(2.19b)相加,得补补补补补补补补补

41、补补补0 故 补补 (mod 2),从补求补的法则是:对补包括符号位“求反且最末位加1”,即可得到补写成运算表达式,为:Y补 Y补2n例12 已知10.1110,20.1101,求:1补,1补,2补,2补 解: 1补1.00101补0.11102补0.11012补1.0011,2.2.2 补码减法,例13 0.1101,0.0110,求。解:补0.1101补0.0110, 补1.1010补 0.1101补 1.1010 补 10.0111 所以 0.0111,1、定义: 在定点数机器中,数的大小超出了定点数能表示的范围,叫溢出。 例14 0.1011, 0.1001,求。 解: 补0.1011

42、 补0.1001补 0.1011 补 0.1001 补 1.0100 两个正数相加的结果成为负数,这显然是错误的。,2.2.3 溢出概念与检测方法,2.2.3 溢出概念与检测方法,例15 -0.1101, -0.1111,求。 解: 补1.0011 补1.0001补 1.0011 补 1.0001 补 0.0101 两个负数相加的结果成为正数,这显然是错误的。两个正数相加,结果大于机器所能表示的最大正数,称为正(上)溢。 两个负数相加,结果小于机器所能表示的最小负数,称为负(下)溢。,2、溢出判断 直接判别法:(复杂)同号补码加 结果符号与操作数相异(异号补码减实际转换成同号补码相加处理了)

43、变形补码(双符号位,也叫模4补码)判别法两符号位 相同无溢出不同有溢出 01上溢 10下溢 溢出逻辑表达式为 VSf1Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。可用异或门实现。 进位判别法判数值最高位的进位与符号位进位是否相同V=Cf C0其中Cf为符号位产生的进位,C0为最高有效位产生的进位。 V=0, 无溢出V=1, 有溢出,回顾逻辑门图形符号,两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci1 :SiAiBiCiCi1AiBiBiCiCiAi,3T+3T,3T+1T+1T,2.2.4基本的二进制加法/减法器,行波进位的补码加法减法器动

44、画演示,3T+5T=2T+6T 1*2T+6T,(n*2T+6T)+3T,(1*2T+6T)+2T=2*2T+6T,(n-2)*2T+6T)+2T=(n-1)*2T+6T,(n-1)*2T+6T)+2T=n*2T+6T,假如每位均采用一位全加器并考虑溢出检测,那么n位行波进位加法器的延迟时间ta为:tan2T9T(2n9)T 具体计算方法见图中标注。ta意味着加法器的输入端输入加数和被加数后,在最坏情况下加法器输出端得到稳定的求和输出所需的最长时间。显然这个时间越小越好。,2.3 定点乘法运算,2.3.1 原码并行乘法 2.3.2 补码并行乘法,2.3.1 原码并行乘法,人工算法与机器算法的同异性在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用)被乘数 原f .n110乘数 原f .n110则乘积原(ff)(0.n110)(0.n110) 式中,f为被乘数符号,f为乘数符号。,

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

当前位置:首页 > 初级教育 > 小学教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报