




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章运算方法和运算器02二月20232目录2.0数据的类型2.1数据与文字的表示方法(掌握)2.2定点加法、减法运算(掌握)2.3定点乘法运算(理解)2.4定点除法运算(了解)2.5定点运算器的组成(了解)2.6浮点运算方法和浮点运算器(理解)02二月202332.0数据的类型(1/2)按数制分:十进制:在微机中直接运算困难;二进制:占存储空间少,硬件上易于实现,易于运算;十六进制:方便观察和使用;按数据格式分:真值:没有经过编码的直观数据表示方式;带正负号的数据,任何数制均可;机器数:符号化后的数值表示;符号也被编码,不能随便忽略任何位置上的0或1;位数固定,一般为字节整倍数,如8位、16位、32位……;可用原码、反码、补码、移码等形式编码;02二月202342.0数据的类型(2/2)按数据的表示范围分:定点数小数点位置固定,数据表示范围小;浮点数小数点位置不固定,数据表示范围较大。按能否表示负数分:无符号数数据所有位均为表示数值,只能表示正数;有符号数有正负之分,最高位为符号位,其余位表示数值。02二月202352.1数据与文字的表示方法2.1.1数据格式(定点数表示)2.1.2数的机器码表示2.1.1数据格式(浮点数表示)2.1.3字符与字符串的表示方法2.1.4汉字的表示方法2.1.5校验码02二月20236定点数:小数点固定在某一位置的数据;纯小数:表示形式
有符号数
x=xSx-1x-2…x-n
|x|≤1-2-n
;xs为符号位
无符号数
x=x0x-1x-2…x-n
0≤x≤1-2-n
;x0=0数据表示范围0.0…0=0≤|x|≤1-2-n=0.1…1纯整数:表示形式
有符号数
x=xsxn-1…x1
x0|x|≤2n-1;xs为符号位
无符号数
x=xnxn-1
…x1
x00≤x≤2n+1-1;xn为数值位注意:小数点的位置是机器约定好的,并没有实际的保存。x0x-1x-2x-3……x-nxnxn-1xn-2……x1x02.1.1数据格式——定点数设采用n+1位数据02二月20237定点机的特点所能表示的数据范围小数据精度较低存储单元利用率低02二月202382.1.2数的机器码表示重点:
1、原码、补码、移码的表示形式
2、补码的定义
3、原码、补码、移码的表示范围02二月202391、原码表示法——定义定义:定点小数: [x]原=定点整数: [x]原=举例:[+0.110]原=0.110[-0.110]原=1-(-0.110)=1.110[+110]原=0110[-110]原=23-(-110)=1000+110=1110x 1>x≥01-x=1+|x| 0≥x>-1x 2n>x≥02n-x=2n+|x| 0≥x>-2n实际机器中保存时并不保存小数点02二月2023101、原码表示法——特点0有两种表示法[+0]原
=0000; [-0]原
=1000数据表示范围定点小数:-1<X<1定点整数:-2n<X<2n
(若数值位n=3,即:-8<X<8)优点与真值对应关系简单;缺点参与运算复杂,需要将数值位与符号位分开考虑。02二月202311要将指向5点的时钟调整到3点整,应如何处理?5-2=35+10=3(12自动丢失。12就是模)补码表示法的引入(1/3)02二月202312继续推导:5-2=5+10(MOD12)5+(-2)=5+10(MOD12)-2=10(MOD12)结论:
在模为12的情况下,-2的补码就是10。一个负数用其补码代替,同样可以得到正确的运算结果。补码表示法的引入(2/3)02二月202313进一步结论:在计算机中,机器能表示的数据位数是固定的,其运算都是有模运算。若是n位整数,则其模为2n;若是小数,则其模为2。若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。补码表示法的引入(3/3)02二月2023142、补码表示法——定义定义:定点小数:[x]补=定点整数:[x]补=举例:[+0.110]补=0.110[-0.110]补=10+(-0.110)=1.010[+110]补=0110[-110]补=24+(-110)=10000-110=1010x 1>x≥02+x=2-|x| 0≥x≥-1x 2n>x≥02n+1+x=2n+1-|x|0≥x≥-2nx为n+1位(mod2)(mod2n+1)实际机器中保存时并不保存小数点02二月2023152、补码表示法——特点特殊数据的表示0的唯一编码:
[-0]补=[24+(-0)]mod24=0000=[+0]补原码中用于表示-0的编码10…0,补码中表示负的最小值;数据表示范围定点小数:-1≤X<1定点整数:-2n≤X<2n
(若数值位n=3,则-8≤X<8)加减运算规则只要结果不溢出,可将补码符号位与数值位一起参与运算。[[x]补]补=[x]原补码除2操作,可通过算术右移实现[-0.0110]补=11010,则[(-0.0110)/10]补
=11101,真值为-0.001102二月202316由原码求补码由原码求补码的简便原则(负数)除符号位以外,其余各位按位取反,末位加1;除符号位以外,从最低位开始,遇到的第一个1以前的各位保持不变,之后各位取反。例:[X]原=110110100[X]补=10100110002二月202317由[X]补求[-X]补连同符号位的所有位一起取反,末位加1;例:X=-0.0101011[X]补=1.1010101;[-X]补=0.0101011;即:由[-X]补求[X]补,此规则同样适用。求相反数的补码[X]补=11010101
00101010+1[-X]补=0010101102二月2023183、移码表示法移码通常用于表示浮点数的阶码用定点整数形式的移码定义:
[x]移=2n+x 2n>x≥-2n与[x]补的区别:符号位相反优点:可以比较直观地判断两个数据的大小;浮点数运算时,容易进行对阶操作;表示浮点数阶码时,容易判断是否下溢;当阶码为全0时,浮点数下溢。真值补码移码-8-7-6……0+1……+74位补码与移码000000010010……10001001……1111100010011010……00000001……011102二月202319原、补、移码的编码形式原码和补码正数:原、补码的编码完全相同;负数:符号位为1;数值部分与原码各位相反,且末位加1;补码和移码无论正数还是负数:符号位相反,数值位相同;02二月202320课本P22例6
以定点整数为例,用数轴形式说明原码、补码、移码表示范围和可能的数位组合情况。02二月202321课本P22例7
将十进制真值(-127,-1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。十进制真值二进制真值原码表示反码表示补码表示移码表示-127-10+1+127-111111111111111100000001000000100000001-000000110000001111111101111111101111111+0000000-0000000000000000000000010000000111111110000000010000000+000000100000001000000010000000110000001+11111110111111101111111011111111111111102二月202322P22例8
设机器字长16位,定点表示,数值15位,数符1位,问:
(1)定点原码整数表示时,最大正数是多少?最小负数是多少?
(2)定点原码小数表示时,最大正数是多少?最小负数是多少?0111111111111111111111111111111101111111111111111111111111111111(215-1)=+32767-(215-1)=-32767(1-2-15)=+(1-1/32768)-(1-2-15)=-(1-1/32768)定点原码整数最大正数 最小负数 定点原码小数最大正数 最小负数若用补码表示呢?最小正数、最大负数各是多少呢?02二月2023232.1.1数据格式——浮点数浮点数:小数点位置可变,形如科学计数法中的数据表示。浮点数格式定义:N=Re×MM:尾数(mantissa),是一个纯小数,表示数据的全部有效数位,其位数决定着数值的精度;R:基数(radix),可以取2、8、10、16,表示当前的数制;微机中,一般默认为2,隐含表示。e:阶码(exponent),是一个整数,用于指出小数点在该数中的位置,其位数决定着数据的取值范围。机器数的一般表示形式阶符阶码数符尾数数符阶符阶码尾数课本P1702二月202324科学计数法的表示一个十进制数可以表示成不同的形式:同理,一个二进制数也可以有多种表示:02二月202325浮点数举例请将数据-12.625D用16位的浮点数形式表示。数据格式如下,阶码(含阶符)4位,尾数(含数符)12位-12.625D=-1100.101B=-0.1100101×24B设尾数用原码表示,阶码用补码表示;浮点数表示为:0100;1.11001010000设尾数用补码表示,阶码用移码表示;浮点数表示为:1100;1.00110110000阶符阶码数符尾数1位3位1位11位02二月202326浮点数规格化浮点数的表示1.11×20=0.111×21=0.00111×23规格化的目的保证浮点数表示的唯一性;保留更多地有效数字,提高运算的精度。规格化要求:|尾数|≥0.5;尾数原码表示:最高数值位为1,正数0.1…,负数1.1…;尾数补码表示:最高数值位和符号位相反,正数0.1…,负数1.0…
;[+0.1B]补=0.10…0[-0.1B]补=1.10…0[-0.10…01B]补=1.01…11规格化处理:尾数向左移n位(小数点右移),同时阶码减n;尾数向右移n位(小数点左移),同时阶码加n。右规左规02二月202327浮点数的数据表示范围0最大负数最小正数最小负数最大正数下溢区上溢区上溢区负数区正数区浮点数最小负数最大负数最小正数最大正数M取值负的最小值负的最大值正的最小值正的最大值E取值正的最大值负的最小值负的最小值正的最大值浮点数的溢出:阶码溢出上溢:阶码大于所能表示的最大值;下溢:阶码小于所能表示的最小值;机器零:尾数为0,或阶码小于所能表示的最小值;02二月202328浮点数的最值非规格化数据规格化数据真值机器数机器数真值最小负数最大负数最小正数最大正数设浮点数格式为1位阶符m位阶码1位数符n位尾数移码表示[-2m,+(2m-1)]补码表示[-1,+(1-2-n)]-1×2+(2m-1)-2-n×2-2m+2-n×2-2m+(1-2-n)×2+(2m-1)11···11;100···0000···00;111···1100···00;000···0111···11;011···11同左同左00···00;1
01···11-(2-1+2-n)×2-2m+2-1×2-2m同左同左00···00;010···0002二月202329【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。最大正数阶码最大、尾数最大最大正数为0.11…1×211…1(1-2-9)×231最小正数最小正数为0.10…00×2-32
即2-32×2-1=2-33注意:不是
因为0.0…1×2-32不是规格化数。01…101…1151910…0010…00151910…000…01151902二月202330【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。最小的负数最小负数为-1.00…0×231即231×(-1)=-231最大的负数最大负数为-0.10…01×2-32
即-(2-9+2-1)×2-32注意:因有规格化要求,不是01…110…0151910…0101…1151910…0111…11519定点数与浮点数的
数据表示范围和精度比较以16位数据为例,编码方式均采用补码表示定点数定点整数:-215~+215-1(即-32768~+32767)定点小数:-1~+1-2-15
(即-1~+0.999969482421875)浮点数格式:最大正数:+1111111×21111111B最小正数:+0.0000001×2-1111111B最大负数:-0.0000001×2-1111111B最小负数:-1111111×21111111B02二月2023311位阶符7位阶码1位数符7位尾数务必牢记浮点数的表示要与具体的格式规定有关;在做题时,要看题目里要求的浮点数格式和编码表示;一般机器中,浮点数采用IEEE754标准来存放float、double类型的变量;IEEE754标准只是浮点数的一种表示形式;02二月20233202二月202333浮点数的IEEE754标准表示IEEE(InstituteofElectricalandElectronicsEngineers)美国电气及电子工程师学会IEEE致力于电气、电子、计算机工程和与科学有关的领域的开发和研究,也是计算机网络标准的主要制定者。为便于软件移植,按照IEEE754标准,实际机器内32位浮点数和64位浮点数的标准格式如下:022233031SEM23位尾数,仅为数值部分8位阶码,包括阶符1位数符32位浮点数051526263SEM64位浮点数高级语言中的float类型高级语言中的double类型02二月20233432位浮点数的IEEE754标准表示数符S:表示浮点数的符号,占1位,0—正数、1—负数;尾数M:23位,原码纯小数表示,小数点在尾数域的最前面;由于原码表示的规格化浮点数要求,最高数值位始终为1,因此该标准中隐藏最高数值位(1),尾数的实际值为1.M;阶码E:8位,采用有偏移值的移码表示;移127码,即E=e+(27-1)=e+127;标准8位移码应该是移128码,[x]移=x+27=x+128浮点数的真值:N=(-1)S×(1.M)×2E-127数符S阶码E尾数M02二月202335IEEE754标准格式(64位格式)其真值表示为:
x=(-1)S×(1.M)×2E-1023e=E-102302二月202336IEEE754标准的数据表示IEEE754标准中的阶码E正零、负零E与M均为零,正负之分由数据符号确定;正无穷、负无穷E为全1,M为全零,正负之分由数据符号确定;阶码E的其余值(00000001~11111110)为规格化数据;真正的指数e的范围为-126~+127为避免浮点数下溢,允许采用比最小规格化数还小的非规格化数来表示,但此时尾数M前的隐含位为0,而不是1。E=00000000,M=0000…0000E=11111111,M=0000…000000000000~1111111102二月202337课本P18例1[例1]若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解:(41360000)16=0100
00010011
01100000000000000000指数e=E-127=10000010
-01111111=00000011=3尾数1.M=1.011
01100000000000000000=1.011011浮点数N=(-1)S×(1.M)×2e
=(-1)0×(1.011011)×23
=(11.375)10数符S阶码E尾数M02二月202338课本P18例2[例2]将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:(20.59375)10=(10100.10011)2将尾数规范为1.M的形式:
10100.10011=1.010010011×24
e=4可得:M=010010011
S=0
E=4+127=131=10000011故,32位浮点数的754标准格式为:
01000001
1010
01001100
000000000000=(41A4C000)16
02二月202339求解技巧将下列十进制数表示成IEEE754格式的32位浮点数形式存储。(1)27/32(2)11/512求解:(1)27/32=27*(1/32)=(00011011)2*2-5尾数:1.1011 ; 阶码:e=-5+4=-1,E=e+127=126IEEE754数据
0
01111110
10110000000000000000000(2)11/512=(00001011)2*2-9尾数:1.011 ; 阶码:e=-9+3=-6,E=e+127=121IEEE754数据
0
01111001
0110000000000000000000C#中float类型和double类型数据运算结果02二月202340C#中float类型和double类型数据float和double的精度是由尾数的位数来决定的;float类型:223=8388608;最多能有7位有效数字,但绝对能保证的为6位;即float的精度为6~7位;double类型:252=4503599627370496;最多能有16位有效数字,但绝对能保证的为15位;即double的精度为15~16位;02二月20234102二月202342例:将十进制数-54表示成二进制定点数(16位)和浮点数(16位,其中数值部分10位,阶码部分4位,阶符和数符各取1位),并写出它在定点机和浮点机中的机器数形式。令x=-54,则x=-11011016位定点数真值表示:x=-000000000110110定点机器数形式
[x]原:
[x]补:浮点数规格化表示:x=-(0.1101100000)×2110浮点机器数形式
[x]原:
[x]补:32位IEEE754标准:x=-(1.101100000)×21011000000000110110111111111100101000110;1110110000000110;10010100000数符S阶码E尾数M11000010010110000……000002二月202343课本P23例9
(类似IEEE754标准的公式,但阶码采用的是移128码)
容易混淆,不用看!02二月202344浙江大学考研试题
计算机储存程序的特点之一是把数据和指令都作为二进制信号看待。今有一计算机字长32bit,数符位是第31bit;单精度浮点数格式如图所示。对于二进制数10001111111011111100000000000000①表示一个补码整数,其十进制值是多少?②表示一个无符号整数,其十进制值是多少?③表示一个IEEE754标准的单精度浮点数,其值是多少?8位23位131302322002二月202345二进制数10001111111011111100000000000000表示一个补码整数,其十进制值是多少?作为补码整数,其对应的原码是
11110000000100000100000000000000十进制值是-(230+229+228+220+214
)表示一个无符号整数,其十进制值是多少?作为无符号整数,其十进制值是
231+227+226+225+224+223+222+221+219+218+217+216+215+21402二月202346二进制数1000
1111
111011111100000000000000
作为IEEE754标准的单精度浮点数阶码E是00011111指数e=阶码E-127=00011111-01111111
=-1100000B=-96D尾数M=110
11111100000000000000则1.M =1.11011111100000000000000
=1.110111111∴单精度浮点数值为:
X=(-1)s×1.M×2e=-(1.110111111)×2-96
=-(0.1110111111)×2-95
=-(14×16-1+15×16-2+12×16-3)×2-95
=-0.3115×2-95
02二月2023472.1.1数据格式——十进制数串的表示方法字符串形式每个十进制数位占用一个字节;除保存各数位,还需要指明该数存放的起始地址和总位数;主要用于非数值计算的应用领域。压缩的十进制数串形式采用BCD码表示,一个字节可存放两个十进制数位;节省存储空间,便于直接完成十进制数的算术运算;用特殊的二进制编码表示数据正负,如1100—正、1101—负02二月2023482.1.3字符与字符串的表示方法ASCII码(美国国家信息交换标准字符码)包括128个字符,共需7位编码;ASCII码规定:最高位为0,余下7位作为128个字符的编码。最高位的作用:奇偶校验;扩展编码。字符串指连续的一串字符,每个字节存一个字符。当存储字长为2、或4个字节时,在同一个存储单元中;可按从低位字节向高位字节的顺序存放字符串的内容;或按从高位字节向低位字节的次序顺序存放字符串的内容。02二月2023492.1.4汉字的表示方法汉字的输入编码目的:直接使用西文标准键盘把汉字输入到计算机。分类:主要有数字编码、拼音码、字形编码三类。汉字内码用于汉字信息的存储、交换、检索等操作的机内代码。如:GB2312、UNICODE编码。汉字字模码用点阵表示的汉字字形代码,用于汉字的输出。02二月202350显示输出打印输出机内码向字形码转换机内码输入码向机内码转换中文编码字符代码化(输入)数字码拼音码字形码02二月202351汉字字模码精密型4848288提高型3232128普及型242472简易型161632汉字点阵类型点阵占用字节数02二月2023522.1.5校验码(数据校验)数据校验原因为减少和避免数据在计算机系统运行或传送过程中发生错误,在数据的编码上提供了检错和纠错的支持。数据校验码的定义能够发现某些错误或具有自动纠错能力的数据编码;也称检错码;数据校验的基本原理是扩大码距;码距:任意两个合法码之间不同的二进制位的最少位数;仅有一位不同时,称其码距为1。02二月202353码距及作用设用四位二进制表示16种状态16种编码都用到了,此时码距为1;任何一种状态的四位码中的一位或几位出错,就变成另一个合法码;无检错能力。若用四位二进制表示8个状态只用其中的8种编码,而把另8种编码作为非法编码;可使码距扩大为2;注意:并不是任选8种编码都可扩大码距;
02二月202354校验码的类型奇偶校验码根据数据中“1”的个数,设置1位校验位的值;分奇校验和偶校验两种,只能检错,无纠错能力;海明校验码在奇偶校验的基础上,增加校验位而得;具有检错和纠错的能力;循环冗余校验码(CRC)通过模2的除法运算建立数据信息和校验位之间的约定关系;具有很强的检错纠错能力。02二月202355奇偶校验码——概念奇偶校验原理在数据中增加1个冗余位,使码距由1增加到2;如果合法编码中有奇数个位发生了错误,就将成为非法代码。增加的冗余位称为奇偶校验位。校验的类型偶校验:每个码字(包括校验位)中1的数目为偶数。奇校验:每个码字(包括校验位)中1的数目为奇数。校验过程发送端:按照校验类型,在发送数据后添加校验位P;接收端:对接收到的数据(包括校验位)进行同样类型的校验,决定数据传输中是否存在错误;02二月202356接收端字校验位校验码例1:数据
00100001奇校验码001000011偶校验码001000010例2:01110101偶校验码0111
01011发送端(门电路)011001011出错!奇偶校验码例题数据传送02二月202357海明码海明码是1950年提出的;只要增加少数的几位校验码,即可检测出多位出错,并能自动恢复一或几位出错信息;实现原理:在一个数据中加入几个校验位,每个校验位和某几个特定的信息位构成偶校验的关系;接收端对每个偶关系进行校验,产生校验因子;通过校正因子区分无错和码字中的n个不同位置的错误;不同代码位上的错误会得出不同的校验结果;02二月202358海明校验的过程确定校验位的位数数据位数不同,所需的校验位位数也不同;确定校验位的位置数据位和校验位是交叉排列的;校验分组选择校验位和数据位的对应关系;校验位的形成由分组内的数据位形成对应的校验位;接收端校验接收端校验数据的正误;02二月202359海明码——确定校验位的位数设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式:N=K+r≦2r-1通常称为(N,K)海明码设某(7,4)海明码表示的码字长度为
位,校验位数为
位。例如:数据D3D2D1D0=1001K=4,r+5≦2r
;可知,需要校验位3位P3P2P1;7302二月202360海明码——确定校验位的位置数据表示数据位D(DiDi-1…D1D0)、校验位P(PjPj-1…P2P1)海明码H(包括数据位和校验位):HmHm-1…H2H1;分组原则每个校验位Pi从低到高被分在海明码中位号2i-1的位置;例如:数据D3D2D1D0=1001,校验位P3P2P1海明码共7位H7H6…H2H1,各位分配如下:H7H6H5H4H3H2H1P1P2P3D0D1D2D302二月202361海明码——校验分组校验原则海明码的每一位Hi有多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和;每个信息位的位置写成用2的幂次之和的形式;例如H7参与H1、H2、H4的校验;H6参与H2、H4的校验;H5参与H1、H4的校验;H3参与H1、H2的校验;分组情况H7H6H5H4H3H2H1P1P2P3D0D1D2D3第一组P1(H1)第二组P2(H2)第三组P3(H4)√√√√√√√√√第一组(P1、D3、D1、D0)第二组(P2、D3、D2、D0
)第三组(P3、D3、D2、D1
)02二月202362海明码——校验位的形成校验位形成公式P1=第一组中所有位(除P1)求异或
……
Pj=第j组中所有位(除Pj)求异或为了能检测两个错误,增加一位校验Pj+1,放在最高位。Pj+1=所有位(包括P1,P2
,…
,Pj)求异或例如:P1=D3⊕D1⊕D0=1⊕0⊕1=0P2=D3⊕D2⊕D0=1⊕0⊕1=0P3=D3⊕D2⊕D1=1⊕0⊕0=1P4=D3⊕D2⊕D1⊕D0⊕P3⊕P2⊕P1=1⊕0⊕0⊕1⊕0⊕0⊕1=1第一组(P1、D3、D1、D0)第二组(P2、D3、D2、D0
)第三组(P3、D3、D2、D1
)数据D3D2D1D0=100102二月202363海明码——接收端校验(1/2)接收端接收到数据后,分别求S1,S2,S3,…,Sj
S1=第一组中所有位(包括P1)求异或
…
Sj=第j组中所有位(包括Pj)求异或Sj+1=Pj+1⊕所有位(包括P1,P2
,…
,Pj)求异或当Sj+1=1时,有一位出错;由Sj…
S3S2S1的编码指出出错位号,将其取反,即可纠错。当Sj+1=0时,无错或有偶数个错(两个错的可能性比较大);当Sj…
S3S2S1=0
…
0
00时,接收的数无错,否则有两个错。02二月202364同上例,接收端接收的数据为接收端求SS1=0⊕1⊕0⊕1=0S2=0⊕1⊕0⊕1=0S3=1⊕1⊕0⊕0=0S4=1⊕1⊕0⊕0⊕1⊕1⊕0⊕0=0若接收端接收到错误的数据S1=0⊕1⊕0⊕1=0S2=0⊕1⊕1⊕1=1S3=1⊕1⊕1⊕0=1S4=1⊕1⊕1⊕0⊕1⊕1⊕0⊕0=1海明码——接收端校验(2/2)H8H7H6H5H4H3H2H1P4D3D2D1P3D0P2P111001100第一组(P1、D3、D1、D0)第二组(P2、D3、D2、D0
)第三组(P3、D3、D2、D1
)无错误!1S4=1,有错误!S3S2S1=110,H6位有错,应取反!02二月202365【练习】设待校验的数据为
D7~D0=10101011,写出其海明校验码。【解】①确定海明校验位的位数因为K=8,由N=K+r≦2r-1,得9+r≦2r,校验位的位数为r=4。②确定校验位的位置
i:121110987654321D7D6D5D4P4D3D2D1P3D0P2P1③分组(N位分r组)位号i121110987654321D7D6D5D4P4D3D2D1P3D0P2P110101011第一组(P1)√√√√√第二组(P2)√√√√√第三组(P3)√√√√第四组(P4)√√√√02二月202366【练习】设待校验的数据为
D7~D0=10101011,写出其海明校验码。④校验位的形成
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的海明校验码为:10100101111102二月202367海明码的纠错与检错能力一个系统能纠正一位差错时,码距最小是3;码距为3时,或能纠正一位错,或能检测二位错;但不能同时纠正一位错并检测二位错。码距为1至7时,海明码的纠错和检错能力如右表:码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。码距码能力检错纠错10021032或142并152并263并273并302二月202368CRC校验CRC的工作方法在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端;接收端收到的信息按发送端形成循环冗余码同样的算法进行校验;若无错,则接收;若有错,需重发。CRC的特点可检测出所有奇数位错;可检测出所有双比特的错;可检测出所有小于、等于校验位长度的突发错。CRC码的信息字段和校验字段的长度可以任意选定。02二月2023692.2定点加法、减法运算2.2.1补码加法2.2.2补码减法2.2.3溢出概念与检验方法2.2.4基本的二进制加法、减法器02二月2023702.2.1补码加法补码加法运算基本公式定点整数:[x+y]补=[x]补
+[y]补
(mod2n+1)
定点小数:[x+y]补=[x]补
+[y]补
(mod2)
证明(1)证明依据:补码的定义(以定点小数为例)(2)证明思路:分三种情况。
(a)x、y均为正值(x﹥0,y﹥0)
(b)x、y均为负值(x<0,y<0)
(c)x、y一正一负(x﹥0,y﹤0或者x<0,y>0)02二月202371补码加法公式证明(1/2)证明:(a)x﹥0,y﹥0[x]补+[y]补=x+y=[x+y]补
(mod2)(b)x<0,y<0
∵[x]补=2+x,[y]补=2+y
∴[x]补+[y]补=2+x+2+y=2+(2+x+y)=2+[x+y]补(mod2)=[x+y]补
02二月202372补码加法公式证明(2/2)(c)x﹥0,y﹤0(x<0,y>0的证明与此相同)
∵[x]补=x,[y]补=2+y
∴[x]补+[y]补=x+2+y=2+(x+y)
当x+y>0时,2+(x+y)>2,进位2必丢失;因(x+y)>0,故[x]补+[y]补=x+y=[x+y]补
(mod2)
当x+y<0时,2+(x+y)<2因(x+y)<0,故[x]补+[y]补=2+(x+y)=[x+y]补
(mod2)02二月202373定点数补码加法举例[例11]x=+1001,y=+0101,求x+y。解:
[x]补=01001,[y]补=00101[x]补
01001
+[y]补
00101[x+y]补
01110
所以x+y=+1110[例12]x=+1011,y=-0101,
求x+y。解:[x]补=01011,[y]补=11011[x]补
01011+[y]补
11011[x+y]补
100110
所以x+y=+011002二月202374补码负的最小值的计算[-127]补=[-1111111]补=10000001[-1]补=[-0000001]补=11111111110000000mod2810000000=-12802二月2023752.2.2补码减法
补码减法运算基本公式定点整数:[x-y]补=[x]补
-[y]补=[x]补
+[-y]补
(mod2n+1)定点小数:[x-y]补=[x]补
-[y]补=[x]补
+[-y]补
(mod2)证明:只需要证明[-y]补=-[y]补
已证明[x+y]补=[x]补
+[y]补,故[y]补=[x+y]补-[x]补
又[x-y]补=[x]补
+[-y]补,故[-y]补=[x-y]补-[x]补
可得[y]补
+[-y]补=[x+y]补+[x-y]补-[x]补-[x]补
=[x+y+x-y]补-[x]补-[x]补
=[x+x]补-[x]补-[x]补=0[-y]补等于[y]补的各位取反,末位加1。02二月202376定点数补码减法举例
[例13]已知x1=-1110,x2=+1101,
求:[x1]补,[-x1]补,[x2]补,[-x2]补。解:[x1]补=10010[-x1]补=﹁[x1]补+1
=01101+00001=01110[x2]补=01101[-x2]补=﹁[x2]补+1
=10010+00001=10011注意课本上是将数据作为定点小数来处理的!02二月202377定点数补码减法举例
[例14]x=+1101,y=+0110,求x-y。解:[x]补=01101,[y]补=00110,[-y]补=11010[x-y]补=[x]补+[-y]补=01101+11010
=100111
=00111
∴x-y=+011101101+)1101010011102二月20237802二月202378定点数补码加减法运算基本公式定点整数:
[x±
y]补=[x]补
+[±y]补
(mod2n+1)定点小数:
[x±
y]补=[x]补
+[±y]补
(mod2)定点数补码加减法运算符号位和数值位可同等处理;只要结果不溢出,将结果按2n+1或2取模,即为本次运算结果。02二月202379例
设机器字长为8位,[x]补=10100011,
[y]补=00101101,求x-y。解: [-y]补=11010011 [x-y]补=[x]补+[-y]补 =10100011+11010011
=101110110
=01110110
∴x-y=+11810100011+)11010011101110110×x=-93,y=+45计算过程中,产生了溢出!-93-45=-138<-12802二月2023802.2.3溢出概念与检测方法溢出在定点数机器中,数的大小超出了定点数能表示的范围。上溢数据大于机器所能表示的最大正数;下溢数据小于机器所能表示的最小负数;例如,4位补码表示的定点整数,范围为[-8,+7]若x=5,y=4,则x+y产生上溢若x=-5,y=-4,则x+y产生下溢若x=5,y=-4,则x-y产生上溢02二月20238002二月202381例题[例15]x=+1011,y=+1001,求x+y。[解:]
[x]补=0.1011[y]补=0.1001[x]补
0.1011
+[y]补
0.1001[x+y]补
1.0100[例16]x=-1101,y=-1111,求x+y。[解:]
[x]补=1.0011[y]补=1.0001[x]补
1.0011+[y]补
1.0001[x+y]补
0.0101正数+正数=负数负数+负数=正数溢出!02二月202382溢出判别方法1——直接判别法方法:同号补码相加,结果符号位与加数相反;异号补码相减,结果符号位与减数相同;特点:硬件实现较复杂;举例:若[x]补=0101,[y]补=0100,则[x+y]补=1001若[x]补=1011,[y]补=1100,则[x+y]补=0111若[x]补=0101,[y]补=1100,则[x-y]补=1001上溢下溢上溢02二月202383溢出判别方法2——变形补码判别法变形补码,也叫模4补码:采用双符号位表示补码判别方法:特点:硬件实现简单,只需对结果符号位进行异或举例:若[x]补=00101,[y]补=00100,则[x+y]补=01001若[x]补=11011,[y]补=11100,则[x+y]补=10111若[x]补=00101,[y]补=11100,则[x-y]补=01001双符号位
结果00正01上溢10下溢11负上溢下溢上溢02二月20238402二月202384溢出判别方法3——进位判别法0101+)
01001001100001+)
0100010100V=0⊕1=1V=0⊕0=0判别方法:最高数值位的进位与符号位的进位是否相同;判别公式溢出标志V=Cf⊕Cn-1其中Cf为符号位产生的进位,Cn-1为最高数值位产生的进位。举例:02二月202385回顾逻辑门图形符号02二月2023862.2.4基本的二进制加法/减法器一位二进制数据的半加器:加数:Ai、Bi
结果:Si(和)Ci+1(本位向高位的进位)一位半加器示意图:一位二进制数据的全加器:加数:Ai、Bi
Ci(低位向本位的进位)结果:Si(和)
Ci+1(本位向高位的进位)一位全加器示意图:FAAiBiCiCi+1SiHAAiBiCi+1Si02二月202387一位二进制数据的全加器的逻辑结构全加运算的真值表如右所示:两个输出端的逻辑表达式Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi全加器逻辑结构:输入输出AiBiCiSiCi+100000001100101001101100101010111001111113T+1T+1T3T+3T3T3TTT02二月202388多位二进制数据加法器两个n位的数据A=An-1An-2…A1A0,B=Bn-1Bn-2…B1B0和S=Sn-1Sn-2…S1S0采用进位判别法判断运算的溢出:V=Cn⊕Cn-102二月202389多位二进制数据加法/减法器将减法转换成加法[A]补
-[B]补=[A]补
+[-B]补由[B]补求[-B]补
[B]补求各位取反,末位加1;将加减法电路合二为一使用异或运算;当M=0时,Bi’=Bi当M=1时,Bi’=﹁Bi;BiMBi’02二月202390多位二进制数据加法/减法器3T+5T=1*2T+6T(1*2T+6T)+2T=2*2T+6T(n-1)*2T+6T(n*2T+6T)+3T=2nT+9T动画演示:2-1.swfn*2T+6T02二月202391多位二进制加法/减法器的输出延迟假如每位均采用一位全加器并考虑溢出检测,n位行波进位加法器的延迟时间ta为:
ta=n*2T+9T=(2n+9)T如果不考虑溢出,则延迟时间ta由Sn-1的输出延迟决定:
ta=(n-1)*2T+6T+3T
=(2(n-1)+9)T
延迟时间ta输入稳定后,在最坏情况下加法器得到稳定的输出所需的最长时间。显然这个时间越小越好。02二月2023922.3定点乘法运算2.3.0串行乘法2.3.1原码并行乘法2.3.2直接补码并行乘法02二月2023932.3.0串行乘法1.分析笔算乘法A=–0.1101B=0.1011A×B=–0.100011110.11010.101111011101000011010.10001111符号位单独处理乘数的某一位决定是否加被乘数4个位积一起相加乘积的位数扩大一倍×乘积的符号心算求得
?02二月202394A
•B=A
•0.1011=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(
A+0.1A)=0.1A+0.01[0•
A+0.1(
A+0.1A)]=0.1{A+0.1[0•
A+0.1(A+0.1A)]}=2-1{A+2-1[0•
A+2-1(A+2-1(A+0))]}①②⑧第一步被乘数A
+0第二步部分积右移1位,得新的部分积第八步部分积右移1位,得结果③第三步部分积
+被乘数…右移一位2.笔算乘法改进02二月2023950.00000.11010.11010.11010.00000.1101初态,部分积=0乘数为1,加被乘数乘数为1,加被乘数乘数为0,加01.001110.1001111.0001111乘数为1,加被乘数0.100011111,得结果1011=0.01101,形成新的部分积1101=0.10011,形成新的部分积1110=0.01001,形成新的部分积1111=
部分积乘数说明3.改进后的笔算乘法过程(竖式)被乘数为0.1101乘数为0.101102二月202396小结乘法运算=加法+移位。若乘数数值位n=4,则累加4次,移位4次;乘法过程由乘数的末位决定被乘数是否与原部分积相加;被乘数只与部分积的高位相加部分积右移一位形成新的部分积;同时乘数右移一位(末位移丢);空出高位存放部分积的低位。硬件构成3个具有移位功能的寄存器、一个全加器02二月202397A、X、Q均n+1位,移位和加受末位乘数控制0
累加器A
n加法器控制门0
暂存器X
n
移位和加控制计数器CSGM0乘商寄存器Q
n右移串行乘法的硬件配置运算前为:n+1位部分积初值为0运算后为:乘积高n+1位被乘数乘运算时用到的加数运算前为:n+1位乘数运算后为:乘积低n+1位02二月202398常用的串行乘法运算原码乘法(符号位和数值位必须分开计算)原码一位乘一次判断1位,需判断n次(乘数位数为n);原码两位乘一次判断2位,可提高乘法的运算速度;补码乘法(符号位和数值位可以等同处理)补码一位乘结果修正法——需区分乘数正负号,复杂Booth算法——比较法,符号位直接参与运算补码两位乘02二月202399原码一位乘法设X=Xf.X1X2…Xn,Y=Yf.Y1Y2…Yn,乘积的符号位为Pf,则Pf=Xf⊕Yf|P|=|X|●|Y|求|P|的运算规则如下被乘数和乘数均取绝对值参加运算,符号位单独考虑;被乘数取双符号位,部分积的长度同被乘数,初值为0;从乘数的最低位Yn开始判断:若Yn=1,则部分积加上被乘数|X|,然后右移一位;若Yn=0,则部分积加上0,然后右移一位。重复,判断n次例题02二月2023100+00.1101Yn=1加|X|00.1101
部分积乘数Yn
说明
00.00000.1011
例1.若X=0.1101,Y=-0.1011,用原码一位乘法求[XY]原。【解答】|X|=00.1101(用双符号位表示),|Y|=0.1011(用单符号位)→00.011010.101
右移一位得P1+00.1101Yn=1加|X|01.00111→00.1001110.10
右移一位得P2+00.0000Yn=0加000.100111→00.01001110.1
右移一位得P3+00.1101Yn=1加|X|01.0001111→00.100011110右移一位得P4由于Pf=Xf⊕Yf=0⊕1=1,|P|=|X|*|Y|=0.10001111,[XY]原=1.1000111102二月2023101原码乘符号位和数值位部分分开运算;两位乘每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医管合力在不同类型医院中的应用策略
- 多元固废水泥基胶凝材料性能研究
- 非晶硫化钼-三维铜纳米线复合结构的高效电催化析氢性能研究
- H型高血压患者不同中医体质与颈部动脉斑块的相关性研究
- 2024至2030年中国窗沿篷行业投资前景及策略咨询研究报告
- 2024至2030年中国法国杯行业投资前景及策略咨询研究报告
- 2024至2030年中国机械振动检测仪行业投资前景及策略咨询研究报告
- 2024至2030年中国扭矩倍增器行业投资前景及策略咨询研究报告
- 2024至2030年中国尿液分析试纸行业投资前景及策略咨询研究报告
- 2024至2030年中国垂钓座椅行业投资前景及策略咨询研究报告
- 法人不参与经营免责协议
- DZ∕T 0130-2006 地质矿产实验室测试质量管理规范(正式版)
- 2024年辽宁省营口市中考适应性测试(二模)数学试题
- 四川省泸州市古蔺县金兰教育集团2023-2024学年七年级下学期联合检测数学试卷(含解析)
- 《“光盘”行动-从我做起!》课件
- 2024年高职考试-渤海船舶职业学院单招笔试参考题库含答案
- 低压断路器课件
- 眼科医院转让协议书范本
- 中外政治思想史-形成性测试三-国开(HB)-参考资料
- 危机传播管理 课件 胡百精 第1-6章危机与危机管理-危机传播管理的对话范式:基于“事实-价值”模型(下)
- 2024年广东省佛山市顺德区中考一模英语试卷+
评论
0/150
提交评论