版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章运算方法和运算器08四月20262目录2.0数据的类型2.1数据与文字的表示方法(掌握)2.2定点加法、减法运算(掌握)2.3定点乘法运算(掌握)2.4定点除法运算(掌握)2.5定点运算器的组成(了解)2.6浮点运算方法和浮点运算器(理解)08四月20263学习要求掌握定点和浮点数的表示方法,表示范围;掌握定点数的补码加减法、常用的乘除法运算方法;掌握浮点数的加减运算方法;掌握数据校验的方法;理解溢出判断方法;清楚运算器部件的组成结构及设计方法。08四月202642.0数据的类型(1/2)按数制分:十进制:在微机中直接运算困难;二进制:占存储空间少,硬件上易于实现,易于运算;十六进制:方便观察和使用;二-十进制:4位二进制数表示1位十进制数,转换简单。按数据格式分:真值:没有经过编码的直观数据表示方式,其值可带正负号(+、-),任何数制均可;机器数:符号数字化后的数值(包括正负号的表示),一般位数固定(8、16、32……),不能随便忽略任何位置上的0或1;08四月202652.0数据的类型(2/2)按数据的表示范围分:定点数:小数点位置固定,数据表示范围小;浮点数:小数点位置不固定,数据表示范围较大。按能否表示负数分:无符号数:所有均为表示数值,直接用二进制数表示;有符号数:有正负之分,最高位为符号位,其余位表示数值。按编码不同又可分为原码、反码、补码、移码……08四月202662.1数据与文字的表示方法2.1.1数据格式2.1.2数的机器码表示2.1.3字符与字符串的表示方法2.1.4汉字的表示方法2.1.5校验码08四月202672.1.1数据格式计算机在数的表示方式时,应该考虑一下几个因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定08四月202682.1.1数据格式—定点数一、定点表示法所有数据的小数点位置固定不变由于定点数在约定机器中所有的小数点位置是固定不变的,所以小数点“.”在数据表示中省略了。理论上小数点位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):纯小数纯整数定点数表示:带符号数不带符号数08四月202692.1.1数据格式—定点数假设用n+1位字来表示一个定点数x,对于任意定点数x=
xn
xn-1xn-2
……x2x1x0,在定点机中如下图表示:xnxn-1xn-2
……x2x1x0
符号位数值位08四月202610定点数:小数点固定在某一位置的数据;纯小数:表示形式(原码表示)
有符号数
x=xnxn-1xn-2…x1
x0
|x|≤1-2-n
;xn为符号位
无符号数
x=xnxn-1xn-2…x1
x0
0≤x≤1-2-n
;xn为符号位即xn=0数据表示范围0.0…0=0≤|x|≤1-2-n=0.1…1纯整数:表示形式
有符号数x=xnxn-1…x1
x0|x|≤2n-1;xn为符号位
无符号数x=xnxn-1
…x1
x00≤x≤2n+1-1;xn为数值位注意:小数点的位置是机器约定好的,并没有实际的保存。xnxn-1xn-2xn-3……x1x0xnxn-1xn-2……x1x02.1.1数据格式——定点数设采用n+1位数据08四月202611定点数:最值情况纯小数:(原码表示时最值情况)表示形式最大正数最大正数值为:1-2-n,最小正数最小正数的值为:2-n
2.1.1数据格式——定点数设采用n+1位数据202-12-22-32-(n-1)2-n202-12-22-32-(n-1)2-n0111……110000……010111……1108四月202612定点数:最值情况纯小数:(原码表示时最值情况)表示形式绝对值最大负数绝对值最大负数值为:-(1-2-n)2.1.1数据格式——定点数设采用n+1位数据202-12-22-32-(n-1)2-n1111……1108四月202613定点数:最值情况纯小数:(补码表示时最值情况)表示形式绝对值最大负数绝对值最大负数值为:-1通过2.2节公式可推出此结论
2.1.1数据格式——定点数设采用n+1位数据202-12-22-32-(n-1)2-n1000……0008四月202614定点数:最值情况纯整数:原码表示的绝对值最大负数原码表示的绝对值最大负数值为:-(2n-1)补码表示的绝对值最大的负数补码表示的绝对值最大的负数值为:-2n
2.1.1数据格式——定点数设采用n+1位数据2n2n-12n-22n-321201111……111000……002n2n-12n-22n-3212008四月2026152.1.1数据格式4、定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限机器中,常用定点纯整数表示;
如果用定点表示,则如何表示实数(包括小数和整数)呢?
-------引入浮点08四月202616科学计数法的表示一个十进制数可以表示成不同的形式:同理,一个二进制数也可以有多种表示:其中2+100,2-100是比例因子,存储时将有效数字和比例因子分别存储,即分别存储数的表示范围与精度,比例因子变化即数的小数点变化,因此称为浮点表示法。08四月2026172.1.1数据格式——浮点数浮点数:小数点位置可变,形如科学计数法中的数据表示。浮点数格式定义:N=Re×MM:尾数(mantissa),是一个纯小数,表示数据的全部有效数位,决定着数值的精度;R:基数(radix),可以取2、8、10、16,表示当前的数制;微机中,一般默认为2,隐含表示。e:阶码(exponent),是一个整数,用于指出小数点在该数中的位置,决定着数据数值的大小。机器数的一般表示形式(为了方便浮点数比较大小,一般采用第二种方法)阶符阶码数符尾数数符阶码(含阶符)尾数08四月202618浮点数的IEEE754标准表示
为便于软件移植,按照IEEE754标准,实际机器内32位浮点数和64位浮点数的标准格式如下:SEM02223303123位尾数,仅为数值部分8位阶码,包括阶符1位数符32位浮点数SEM05152626352位尾数,仅为数值部分11位阶码,包括阶符1位数符64位浮点数08四月20261932位浮点数的IEEE754标准表示(采用下面的表示方法)数符S:表示浮点数的符号,占1位,0—正数、1—负数;尾数M:23位,原码纯小数表示,小数点在尾数域的最前面;由于原码表示的规格化浮点数要求,最高数值位始终为1,因此该标准中隐藏最高数值位(即数值1),标准浮点数的存储在尾数中隐含存储着一个1,因此在计算尾数的真值时比一般形式要多一个整数1。尾数的实际值为1.M;阶码E:8位,采用有偏移值的移码表示,移码域值大则其指数也大;移127码,即E=e+127,E的8位二进制数即为移127码的编码;浮点数的真值:N=(-1)S×(1.M)×2E-127数符S阶码E尾数M08四月202620IEEE754标准格式(64位格式)其真值表示为:
x=(-1)S×(1.M)×2E-1023e=E-102308四月202621浮点数的规格化
浮点数的一般表示同一个浮点数的表示是不唯一的。如0.1101可表示为0.01101×21
,也可表示为1.101×2-1。机器数的表示不同,不利于运算规格化的目的保证浮点数表示的唯一性;为了提高数据的精度08四月202622浮点数的规格化
规格化要求按国际电子电气工程师协会规定的标准,浮点数的尾数要用原码表示,即符号位:0表示正,1表示负当尾数的值不为0时,规定其绝对值应≥0.5,也就是最高位为1否则要修改阶码同时移动小数点的位置,使其满足这一要求,这个过程称为浮点数的规格化。规格化处理:尾数向左移n位(小数点右移),同时阶码减n;尾数向右移n位(小数点左移),同时阶码加n。左规右规08四月202623规格化浮点数实际运算时既然非0值浮点数的尾数数值最高位必定为1,则在保存浮点数到内存前,通过尾数右移,强行把该位去掉,用同样多的尾数位就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。浮点数的规格化
08四月202624浮点数的规格化尾数用原码表示时尾数最高数值位为1;尾数形如0.1××…×(正);或1.1××…×(负);例如,0.011×25要规格化则变为0.11×24;-0.011×25要规格化则变为1.11×24;尾数用补码表示时尾数最高数值位和尾数符号位相反;尾数形如0.1××…×(正);或1.0××…×(负)例如,0.011×25要规格化,则变为0.11×24;-0.011×25要规格化,则变为1.01×24;08四月202625阶码E的移码表示法(一般浮点数表示方法)移码通常用来表示浮点数的阶码,由真值加一个固定的常数生成,这个固定的常数称为偏移量。
设定点整数移码的形式为xm…x2x1x0,则移码定义为:
[x]移=2m+x-2m≤x<2m注意:m为有效数据位位数
[x]移是机器数,x是真值,2m是一个固定的偏移量,移码共有m+1位。例、某浮点数阶码8位,含一位符号位,移码表示。当阶码x=-01111111,则:
[x]移=27
-01111111=128-127=0000000108四月202626阶码E的移码表示法移码通常用来表示浮点数的阶码,由真值加一个固定的常数生成,这个固定的常数称为偏移量。
例如[x]移=27
-01111111=128-127=00000001注意在一般的浮点数表示形式,阶码用移码表示时(8位阶码)偏移量是128,但在浮点数754标准表示时,阶码用移码表示时偏移量是127在实际的使用中,如果没有任何的特殊说明,则默认为浮点数的一般表示形式。08四月2026272.1.3数的定点表示与浮点表示
一、浮点表示法我们在看一看下面的表:【X】移=2m+X,128真值原码反码补码移码-128
-127...............-1-0+0+1...............+12710000000000000001111111110000000100000010000000101111111100000011111111011111111100000001111111100000001000000000000000000000000000000010000000000000010000000100000001100000010111111101111111011111111111111108四月202628浮点数的表示范围在浮点数的表示范围中,有两种情况被称为机器零:(1)若浮点数的尾数为零,无论阶码为何值;(2)当阶码的值遇到比它能表示的最小值还要小时(阶码负溢出),无论其尾数为何值机器零机器零:浮点数的尾数为零或阶码为最小数08四月202629浮点数的表示范围0最大负数最小正数最小负数最大正数下溢区上溢区上溢区负数区正数区尾数负的最小值负的最大值正的最小值正的最大值阶码正的最大值负的最小值负的最小值正的最大值浮点数的溢出:阶码溢出上溢:阶码大于所能表示的最大值;下溢:阶码小于所能表示的最小值;机器零:尾数为0,或阶码小于所能表示的最小值;08四月202630浮点数的最值非规格化数据规格化数据真值阶码(移码)尾数机器数真值最小负数最大负数最小正数最大正数设浮点数格式为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···0008四月202631IEEE754标准的32位数据表示IEEE754标准中的阶码E正零、负零E与M均为零,正负之分由数据符号确定;正无穷、负无穷E为全1,M为全零,正负之分由数据符号确定;阶码E的其余值(00000001~11111110)为规格化数据;E为1~254,真正的指数e的范围为-126~+127为避免浮点数下溢,允许采用比最小规格化数还小的非规格化数来表示,但此时尾数M前的隐含位为0,而不是1。E=00000000,M=0000…0000E=11111111,M=0000…000000000000~1111111108四月202632IEEE754标准对特殊数据的表示符号位S阶码E尾数M数值N0/10=000/10≠0非规格化(-1)S×(0.M)×2-1260/11~254≠0(-1)S×(1.M)×2E-1270/1255≠0NaN(非数值)0/1255=0(-1)S×∞(无穷大)阶码的值在1~254,移码则在-126~127
IEEE754标准的单精度和双精度浮点数表示格式。其中,阶码值0和255分别用来表示特殊数值:当阶码值为255时,若尾数部分为0,则表示无穷大;若尾数部分不为0,则认为这是一个‘非数值’。当阶码和尾数均为0时则表示该数值为0,因为非零数的有效位总是≥1,因此特别约定,这表示为0。当阶码为0,尾数不为0时,该数绝对值较小,允许采用比最小规格化数还要小的数表示。08四月20263301…101…11519【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。最大正数最大正数为0.11…1×2011…1
即(1-2-9)×231该浮点数即为规格化数形式;阶码08四月202634【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。最小正数非规格化数形式最小正数为0.0…01×210…0即2-9×2-(25)=2-9×2-32规格化数形式最小正数为0.1×210…0
2-1×2-(25)=2-3310…001…00151910…000…01151908四月202635【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。最小负数最小负数为-0.1…1×201…1即-(1-2-9)×2(25-1)=-(1-2-9)×231该浮点数即为规格化数形式;01…111…11m1n08四月202636【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。最大负数非规格化数形式最大负数为-0.0…01×210…0即-2-9×2-(25)=-2-9×2-32规格化数形式最大负数为-0.1×210…0即-2-1×2-(25)=-2-1×2-3210…011…001m1n10…010…011m1n08四月202637【例2】设浮点数的阶码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…01151908四月202638【例2】设浮点数的阶码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…1151908四月202639课本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尾数M08四月202640课本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
08四月202641单精度浮点数与双精度浮点数高级语言的float、double使用的即是IEEE754规定的格式。float:32位浮点值,也叫单精度浮点数(4字节保存)double:64位浮点值,也叫双精度浮点数(8字节保存)单精度浮点数的例子:1位8位7位8位8位-11000.0108四月202642求解技巧例如:将下列十进制数表示成IEEE754格式的32位浮点数二进制存储形式。27/3211/512求解:27/32=27*(1/32)=(00011011)
*2-5=1.1011*2-1尾数:1.1011 ; 阶码:e=-5+4=-1,E=e+127=126IEEE754数据:0011111101011000000000000000000011/512=(00001011)=1.011*2-6尾数:1.011 ; 阶码:e=-9+3=-6,E=e+127=121IEEE754数据:001111001011000000000000000000008四月202643例:将十进制数-54表示成二进制定点数(16位)和浮点数(16位,其中数值部分10位,阶码部分4位,阶符和数符各取1位),并写出它在定点机和浮点机中的机器数形式。令x=-54,则x=-11011016位定点数真值表示:x=-000000000110110定点机器数形式
[x]原:
[x]补:浮点数规格化表示:x=-(0.1101100000)×2110浮点机器数形式
[x]原:
[x]补:非IEEE754标准1000000000110110111111111100101000110;1110110000000110;1001010000008四月202644浙江大学考研试题
计算机储存程序的特点之一是把数据和指令都作为二进制信号看待。今有一计算机字长32bit,数符位是第31bit;单精度浮点数格式如图所示。对于二进制数10001111111011111100000000000000①表示一个补码整数,其十进制值是多少?②表示一个无符号整数,其十进制值是多少?③表示一个IEEE754标准的单精度浮点数,其值是多少?8位23位131302322008四月202645二进制数10001111111011111100000000000000表示一个补码整数,其十进制值是多少?作为补码整数,其对应的原码是
11110000000100000100000000000000十进制值是-(230+229+228+220+214
)表示一个无符号整数,其十进制值是多少?作为无符号整数,其十进制值是
231+227+226+225+224+223+222+221+219+218+217+216+215+21408四月202646二进制数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=-0.3115×2-95
08四月2026472.1.2数的机器码表示重点:
1、原码、补码、移码的表示形式
2、补码的定义
3、原码、补码、移码的表示范围08四月2026481、原码表示法——定义定义:定点小数: [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实际机器中保存时并不保存小数点08四月2026491、原码表示法——特点0有两种表示法[+0]原
=0000; [-0]原
=1000数据表示范围定点小数:-1<X<1定点整数:-2n<X<2n
(若数值位n=3即:-8<X<8)优点与真值对应关系简单;缺点参与运算复杂,需要将数值位与符号位分开考虑。08四月202650要将指向5点的时钟调整到3点整,应如何处理?5-2=35+10=3(12自动丢失。12就是模)补码表示法的引入(1/3)08四月202651继续推导:5-2=5+10(MOD12)5+(-2)=5+10(MOD12)-2=10(MOD12)结论:
在模为12的情况下,-2的补码就是10。一个负数用其补码代替,同样可以得到正确的运算结果。补码表示法的引入(2/3)08四月202652进一步结论:在计算机中,机器能表示的数据位数是固定的,其运算都是有模运算。若是n位整数,则其模为2n;若是小数,则其模为2。若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。补码表示法的引入(3/3)08四月2026531.计算机本身是一个模数系统因为机器字长有限,当计算结果的位数超过机器字长时,向更高位的进位就会丢失,这就是机器的模。2.对n+1位的定点小数,XS.X1X2…Xn,符号位XS的位权是20,符号位向更高位的进位要丢失,所以定点小数的模是21=23.对n位的定点整数,XSX1X2…Xn-1,符号位XS的位权是2n,符号位向更高位的进位要丢失,故定点整数的模是2n
。08四月2026542、补码表示法——定义定义:定点小数:[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)实际机器中保存时并不保存小数点08四月2026552、补码表示法——特点0有唯一的表示法[-0]补=[24+(-0)]mod24
=0000=[+0]补数据表示范围定点小数:-1≤X<1定点整数:-2n≤X<2n
(若n=3,则-8≤X<8)加减运算规则[X±Y]补=[X]补±[Y]补
(mod2)只要结果不溢出,可将补码符号位与数值位一起参与运算。[[x]补]补=[x]原补码除2操作,可通过算术右移实现(,符号位向右移动后,正数的话补0,负数补1,)[-0.0110]补=11010,则[(-0.0110)/10]补
=11101,真值为-0.0011比原码多一个负的最小值表示,其编码为100****008四月202656由原码求补码由原码求补码的简便原则(负数)除符号位以外,其余各位按位取反,末位加1;从最低位开始,遇到的第一个1以前的各位保持不变,之后各位取反。例:[X]原=110110100[X]补=10100110008四月202657由[X]补求[-X]补连符号位一起各位求反,末位加1。例:[X]补=1.1010101解:由[-X]补求[X]补,此规则同样适用。求相反数的补码[X]补=1101010100101010+1[-X]补=0010101108四月2026583、移码表示法移码通常用于表示浮点数的阶码用定点整数形式的移码定义:
[x]移=2n+x -2n≤x<2n注意n为x的有效位数的个数与[x]补的区别:符号位相反优点:可以比较直观地判断两个数据的大小;浮点数运算时,容易进行对阶操作;表示浮点数阶码时,容易判断是否下溢;真值补码移码-810000000-710010001-610100010………………000001000+100011001………………+7011111114位补码与移码08四月202659原、补、移码的编码形式正数:原、补码的编码完全相同;补码和移码的符号位相反,数值位相同;负数:原码:符号位为1
数值部分与真值的绝对值相同补码:符号位为1
数值部分与原码各位相反,且末位加1移码:符号位与补码相反,数值位与补码相同08四月202660课本P22例6
以定点整数为例,用数轴形式说明原码、反码、补码、移码表示范围和可能的数码组合情况。08四月20266108四月202661课本P22例7
将十进制真值(-127,-1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。十进制真值二进制真值原码表示反码表示补码表示移码表示-127-111111111111111100000001000000100000001-1-0000001100000011111111011111111011111110+000000000000000000000000000000010000000-00000001000000011111111+1+000000100000001000000010000000110000001+127+111111101111111011111110111111111111111符号位
+0;-1数值位
各位取反数值位
末位加1符号位(正负数)取反负数时08四月202662P22例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)定点原码整数最大正数 最小负数 定点原码小数最大正数 最小负数08四月2026632.1.1数据格式——(3)十进制数串的表示方法字符串形式压缩的十进制数串形式08四月2026642.1.1数据格式——(3)十进制数串的表示方法字符串形式每个十进制数位占用一个字节或一个符号位。“+”、“—”号对应的十进制值分别是43、45。除保存各数位,还需要指明该数存放的起始地址和总位数;主要用于非数值计算的应用领域。00000010000000110000010100001000一个字节(8bit)08四月2026652.1.1数据格式——(3)十进制数串的表示方法压缩的十进制数串形式采用BCD码表示,一个字节可存放两个十进制数位;它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。
用特殊的二进制编码表示数据正负,如1100—正、1101—负1000001000111100一个字节(8bit)001101111101一个字节(8bit)0000不满一字节用0补齐08四月2026662.1.3字符与字符串的表示方法ASCII码(美国国家信息交换标准字符码)包括128个字符,共需7位编码;ASCII码规定:最高位为0,余下7位作为128个字符的编码。最高位的作用:奇偶校验;扩展编码。字符串指连续的一串字符,每个字节存一个字符。当存储字长为2、或4个字节时,在同一个存储单元中;可按从低位字节向高位字节的顺序存放字符串的内容;或按从高位字节向低位字节的次序顺序存放字符串的内容。08四月2026672.1.4汉字的表示方法汉字从输入计算机到汉字输出基本经过三个阶段汉字的输入编码目的:直接使用西文标准键盘把汉字输入到计算机。分类:主要有数字编码、拼音码、字形编码三类。汉字内码用于汉字信息的存储、交换、检索等操作的机内代码汉字内码用两个字节表示。为区分汉字字符与英文字符,将汉字国标码的每个字节的最高位置1,作为汉字机内码汉字字模码用点阵表示的汉字字形代码,用于汉字的输出。汉字字形库一般,汉字用点阵方式表示其外形,即汉字字模。不管汉字的笔划多少,都可在同样的方块中书写,从而把方块分割为许多小方块,组成一个点阵,每个小方块就是点阵中的一个点,即二进制的一个位。每个点由0和1表示“白”和“黑”两种颜色。用这样的点阵就可输出汉字。存储在计算机中的汉字和符号的外形集合称为汉字库。08四月20266808四月202669显示输出打印输出机内码向字形码转换机内码输入码向机内码转换中文编码字符代码化(输入)数字码拼音码字形码08四月202670汉字字模码精密型4848288提高型3232128普及型242472简易型16
1632汉字点阵类型点阵占用字节数2.1.5校验码(数据校验)数据校验的原因:为减少和避免错误信息的形成、存储、传送中发生的错误,除需提高硬件本身的可靠性外,还要在数据编码上想办法。数据校验码就是一种有效的方法。数据校验码是指能发现错误或能自动纠正错误的数据编码,又叫“检错纠错编码”。
数据校验码的码距是衡量两个编码相异程度大小的单位,码距为1,即表示两个码字间最少只有1个二进制位不同(如0000与1000之间),这种编码无检错能力。00000001001000110100010101100111100010011010101111001101111011112.1.5校验码(数据校验)数据校验码的检验原理是:在编码中,除合法的码字外,再加上一些非法的码字,当某个合法码字出现错误时,就变成非法码字。合理安排非法码字的数量和编码规则,能达到纠错的目的。对于码距≥2的数据校验码开始具有检错能力。码距越大,检错、纠错的能力就越强,且检错能力总是大于或等于纠错能力。08四月202673码距及作用设用四位二进制表示16种状态16种编码都用到了,此时码距为1;任何一种状态的四位码中的一位或几位出错,就变成另一个合法码;无查错能力。若用四位二进制表示8个状态只用其中的8种编码,而把另8种编码作为非法编码;可使码距扩大为2;注意:并不是任选8种编码都可扩大码距;
08四月202674校验码的类型奇偶校验码判断数据中1的个数,设置1位校验位;分奇校验和偶校验两种,只能检错,无纠错能力;海明校验码在奇偶校验的基础上增加校验位而得;具有检错和纠错的能力;循环冗余校验码(CRC)通过模2的除法运算建立数据信息和校验位之间的约定关系;具有很强的检错纠错能力。08四月202675校验过程:有效信息校验码编码器校验码校验位校验码发送/写/存接收/读/取有效信息校验位有效信息校验位校验码译码器正确错误输出奇偶校验码——概念奇偶校验码是一种最简单而有效的数据校验方法。实现方法:在每个被传送码的左边或右边加上1位奇偶校验位0或1,若采用奇校验位,只需把每个编码中1的个数凑成奇数;若采用偶校验位,只要把每个编码中1的个数凑成偶数。检验原理:码距为1的二进制码加上奇偶校验位就变成码距为2的奇偶校验码,这种编码能发现1个或奇数个错,但因码距较小,不能实现错误定位。08四月202677奇偶校验码——概念奇偶校验原理在数据中增加1个冗余位,使码距由1增加到2;如果合法编码中有奇数个位发生了错误,就将成为非法代码。增加的冗余位称为奇偶校验位。校验的类型偶校验:每个码字(包括校验位)中1的数目为偶数。奇校验:每个码字(包括校验位)中1的数目为奇数。校验过程发送端:按照校验类型,在发送数据后添加校验位P;接收端:对接收到的数据(包括校验位)进行同样类型的校验,决定数据传输中是否存在错误;08四月202678奇偶校验码——校验原理偶校验:在接收端求校验位P’=D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕P若P’=0,则无错;若P’=1,则有错。奇校验:在接收端求校验位P’=D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕P若P’=1,则无错;若P’=0,则有错。电路实现:一般采用异或电路得到校验位。10101011求校验码偶校验码
10101011
1奇校验码
10101011
008四月202679接收端字校验位校验码例1:数据
00100001奇校验码001000011偶校验码001000010例2:数据:01110101偶校验码011101011发送端(门电路)011001011出错!奇偶校验码
——例题(1/2)08四月202680例3:数据:01110101奇校验码011101010发送端(门电路)011001110接收端正确奇偶校验只能发现奇数个错误,且不能纠正错误!奇偶校验码——例题(1/2)已经错了,但是并未检查出来!奇偶校验对奇偶校验码的评价:它能发现一位或奇数个位出错,但无错误定位和纠错能力。尽管奇偶校验码的检错能力较低,但对计算机内存出错概率统计,其中70~80%是1位错误,另因奇偶校验码实现简单,故它还是一种应用最广泛的校验方法。实际应用中,多采用奇校验,因奇校验中不存在全“0”代码,在某些场合下更便于判别。08四月20268108四月202682CRC校验(自学了解)CRC的工作方法在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端;接收端收到的信息按发送端形成循环冗余码同样的算法进行校验;若无错,则接收;若有错,需重发。CRC的特点可检测出所有奇数位错;可检测出所有双比特的错;可检测出所有小于、等于校验位长度的突发错。CRC码的信息字段和校验字段的长度可以任意选定。08四月2026832.2定点加法、减法运算2.2.1补码加法2.2.2补码减法2.2.3溢出概念与检验方法2.2.4基本的二进制加法、减法器08四月2026842.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或者x<0,y>0)
(c)x、y均为负值(x<0,y<0)08四月202685补码加法公式证明(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]补
08四月202686补码加法公式证明(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)08四月202687定点数补码加法举例[例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=+011008四月2026882.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。08四月202689定点数补码减法举例
[例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注意课本上的错误!注意课本上的错误!08四月202690定点数补码减法举例
[例14]x=+1101,y=+0110,求x-y。解:[x]补=01101,[y]补=00110,[-y]补=11010[x-y]补=[x]补+[-y]补=01101+11010
=100111
=00111
∴x-y=+011101101+)1101010011108四月20269108四月202691定点数补码加减法运算基本公式定点整数:
[x±
y]补=[x]补
+[±y]补
(mod2n+1)定点小数:
[x±
y]补=[x]补
+[±y]补
(mod2)定点数补码加减法运算符号位和数值位可同等处理;只要结果不溢出,将结果按2n+1或2取模,即为本次运算结果。08四月202692例
设机器字长为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<-12808四月2026932.2.3溢出概念与检测方法溢出在定点数机器中,数的大小超出了定点数能表示的范围。上溢数据大于机器所能表示的最大正数;下溢数据小于机器所能表示的最小负数;例如,4位补码表示的定点整数,范围为[-8,+7]若x=5,y=4,则x+y产生上溢若x=-5,y=-4,则x+y产生下溢若x=5,y=-4,则x-y产生上溢08四月20269308四月202694例题[例15]x=+0.1011,y=+0.1001,求x+y。[解:]
[x]补=0.1011[y]补=0.1001[x]补
0.1011
+[y]补
0.1001[x+y]补
1.0100[例16]x=-0.1101,y=-0.1111,求x+y。[解:]
[x]补=1.0011[y]补=1.0001[x]补
1.0011+[y]补
1.0001[x+y]补
0.0101正数+正数=负数负数+负数=正数溢出!溢出判别方法直接判别法变形补码判别法进位判别法08四月20269508四月202696溢出判别方法——直接判别法方法:同号补码相加,结果符号位与加数相反;异号补码相减,结果符号位与减数相同;特点:硬件实现较复杂;举例:若[x]补=0101,[y]补=0100,则[x+y]补=1001若[x]补=1011,[y]补=1100,则[x+y]补=0111若[x]补=0101,[y]补=1100,则[x-y]补=1001上溢下溢上溢08四月202697溢出判别方法——变形补码判别法变形补码,也叫模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负上溢下溢上溢08四月20269808四月202698溢出判别方法——进位判别法0101+)
01001001100001+)
0100010100V=0⊕1=1V=0⊕0=0判别方法:最高数值位的进位与符号位的进位是否相同;采用单符号位法。当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。判别公式溢出标志V=Cf⊕Cn-1,其中Cf为符号位产生的进位,Cn-1为最高数值位产生的进位。举例:08四月20269908四月2026100回顾逻辑门图形符号2.2.4基本的二进制加法/减法器08四月202610108四月20261022.2.4基本的二进制加法/减法器一位二进制数据的半加器:加数:Ai、Bi
结果:Si(和)Ci+1(本位向高位的进位)一位半加器示意图:一位二进制数据的全加器:加数:Ai、Bi
Ci(低位向本位的进位)结果:Si(和)
Ci+1(本位向高位的进位)一位全加器示意图:FAAiBiCiCi+1SiHAAiBiCi+1Si08四月2026103一位二进制数据的全加器的逻辑结构全加运算的真值表如右所示:两个输出端的逻辑表达式Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi=AiBi+Ci(Bi+Ai)全加器逻辑结构:输入输出AiBiCiSiCi+100000001100101001101100101010111001111113T+1T+1T3T+3T08四月2026104一位二进制数据的全加器的逻辑结构全加运算的真值表如右所示:两个输出端的逻辑表达式Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi全加器逻辑结构:3T+1T+1T3T+3T延迟时间由Ai、Bi到Si的延迟时间为6T由Ai、Bi到Ci+1到的延迟时间为5T由Ci到Ci+1的延迟时间为
2T08四月2026105一位二进制数据的全加器的逻辑结构08四月2026106多位二进制数据加法器两个n位的数据A=An-1An-2…A1A0,B=Bn-1Bn-2…B1B0和S=Sn-1Sn-2…S1S0采用进位判别法判断运算的溢出:V=Cn⊕Cn-108四月2026107多位二进制数据加法/减法器将减法转换成加法[A]补
-[B]补=[A]补
+[-B]补由[B]补求[-B]补
[B]补求各位取反,末位加1;将加减法电路合二为一使用异或运算;当M=0时,Bi’=Bi当M=1时,Bi’=﹁Bi;BiMBi’08四月2026108多位二进制数据加法/减法器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+6T08四月2026109多位二进制加法/减法器的输出延迟假如每位均采用一位全加器并考虑溢出检测,n位行波进位加法器的延迟时间ta为:
ta=n*2T+9T=(2n+9)T如果不考虑溢出,则延迟时间ta由Sn-1的输出延迟决定:
ta=(n-1)*2T+6T+3T
=(2(n-1)+9)T
延迟时间ta输入稳定后,在最坏情况下加法器得到稳定的输出所需的最长时间。显然这个时间越小越好。08四月20261102.3定点乘法运算2.3.0串行乘法2.3.1原码并行乘法*2.3.2直接补码并行乘法08四月20261112.3.0串行乘法1.分析笔算乘法A=–0.1101B=0.1011A×B=–0.100011110.11010.101111011101000011010.10001111符号位单独处理乘数的某一位决定是否加被乘数4个位积一起相加乘积的位数扩大一倍×乘积的符号心算求得
?08四月2026112A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建福州三中晋安校区招聘编外英语教师2人备考题库及答案详解【典优】
- 2026河北邢台学院高层次人才引进55人备考题库带答案详解(新)
- 2026贵州黔南州贵定县面向社会招聘国有企业工作人员11人备考题库带答案详解(巩固)
- 2026年芜湖学院博士及高层次人才招聘备考题库及答案详解(夺冠系列)
- 比亚迪列盖世音雄活动规划
- 雨课堂学堂在线学堂云《食品标准与法规(安徽农业)》单元测试考核答案
- 某化肥厂工艺安全管理准则
- 某投资集团薪酬总额管控体系优化成功案例纪实-以分类分级实现公平激励以机制牵引取代上下博弈
- 鲜花配送服务合同
- 2026云南昆明市晋宁区双河乡中心幼儿园编外教师招聘1人备考题库含答案详解ab卷
- 电气二次回路拆、接线作业规定
- 江苏省安装工程计价定额
- 《中医学》第七章 防治原则与治法
- 2021-2022年上海市计算机统招专升本摸底训练【带答案】
- GB/T 325.3-2010包装容器钢桶第3部分:最小总容量212 L、216.5 L和230 L闭口钢桶
- 初中PISA科学试题选
- 《税务会计与税务筹划(第12版)》第12章税务筹划实务简述
- 汽车发展史-课件
- 厌氧菌MIC测定方法
- 装饰装修维修改造工程施工组织设计方案
- 四年级下册数学 习题课件同步奥数培-竞赛选讲-2(PPT13张) 苏教版
评论
0/150
提交评论