1 / 144

复习提问

原始 数据. 运算器 部件. 运算 结果. 输入 设备. 存储器 部件. 输出 设备. 控制器 部件. 复习提问. 计算机系统硬件的五个组成部分有哪些?. 运算方法和运算器. 本章内容. 2.1 数据与文字的表示方法. 2.2 定点加法、减法运算. 2.3 定点乘法运算. 2.4 定点除法运算. 2.5 定点运算器的组成. 2.6 浮点运算方法和浮点运算器. 2.1 数据与文字的表示方法. 2.1.1 数据格式 计算机中常用的数据表示格式:定点格式 , 浮点格式 1 、 定点格式:

dane-porter
Download Presentation

复习提问

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 原始 数据 运算器 部件 运算 结果 输入 设备 存储器 部件 输出 设备 控制器 部件 复习提问 • 计算机系统硬件的五个组成部分有哪些?

  2. 运算方法和运算器

  3. 本章内容 2.1 数据与文字的表示方法 2.2 定点加法、减法运算 2.3 定点乘法运算 2.4 定点除法运算 2.5 定点运算器的组成 2.6 浮点运算方法和浮点运算器

  4. 2.1 数据与文字的表示方法 2.1.1 数据格式 • 计算机中常用的数据表示格式:定点格式, 浮点格式 1、定点格式: • 约定机器中所有数据的小数点位置是固定不变的。 • 将数据表示成定点纯小数或定点纯整数。 • 假设用一个n+1位字来表示一个定点数X,在定点机中可表示为如下形式: X0   X1 X2...Xn-1Xn 符号   量值(尾数) 如果数X表示的是纯小数: 0≤|X|≤1-2-n 如果数X表示的是纯整数:       0≤|X|≤2n-1

  5. 2.1.1 数据格式 • 浮点格式: • 小数点的位置是浮动的: N=Re.M • 其中M:尾数,用定点小数表示。 e:指数,常称为阶码。 R:基数,一般规定R为2,8或16。 因此一个机器浮点数应当由阶码和尾数及其符号位组成: 如: 尾数决定了浮点数的表示精度 阶码决定了浮点数的表示范围 阶符       阶码  数符       尾数

  6. 32位浮点数(单精度浮点格式) 64位浮点数(双精度浮点格式) 2.1.1 数据格式 • 浮点格式: • IEEE754标准 S:符号位,S=0表示正数,S=1表示负数。 M:尾数,小数点放在尾数域的最前面,且尾数域的最高有效位应为1,所以尾数域所表示的值是1. M,称为规格化表示。 E:阶码,采用移码方法来表示正负指数,浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。 一个规格化的32位浮点数x的真值可表示为: x=(-1)s×(1. M) × 2E-127       e=E-127

  7. 2.1.1 数据格式 • 浮点格式: • IEEE754标准 • [例1]若浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。 • [例2]将十进制数178.125表示成微机中的单精度浮点数。 规格化的64位浮点数x的真值表示为: ? x=(-1)s×(1.M)×2E-1023 e=E-1023

  8. 2.1.1 数据格式 • 浮点格式: • [例1]若浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。 将16进制数展开后,可得二进制数格式为 0100 0001 0011 0110 0000 0000 0000 0000            S 阶码(8位)        尾数(23位)       指数e=阶码-127=10000010-01111111 =00000011=(3)10 包括隐藏位1的尾数 1.M=1.011 0110 0000 0000 0000 0000 =1.011011 于是有  x=(-1)s*1. M*2e              =+(1.011011)*23=+1011.011=(11.375)10

  9. 2.1.1 数据格式 • 浮点格式: • [例2]将十进制数178.125表示成微机中的单精度浮点数。 178.125=10110010.001B =1.0110010001x27 指数E=7+127=134=10000110B 127是单精度浮点数应加的指数偏移量,其完整的浮点数形式为 : 0 10000110 011 0010 0010 0000 0000 0000 = 43322000H

  10. 2.1.1 数据格式 • 浮点格式: • 浮点数机器零 • 尾数M为0 • 阶码的值比它能表示的最小值还小 • 结合符号位S为0或1,有正零和负零之分

  11. 2.1.1 数据格式 • 十进制数串的表示方法 • 字符串形式 • 一个字节存放一个十进制的数位或符号位,存储时需指明起始地址和位数(串的长度). • 压缩的十进制数串形式 • 一个字节存放两个十进制的数位 • 用四位二进制来表示一位十进制数及符号位

  12. 2.1.2 数的机器码表示 • 原码 • 比较自然的表示法,最高位表示符号,0为正,1为负。 • 定点小数原码表示的定义是: [X]原=X            1>X≥0 [X]原=1-X=1+|X|    0≥X>-1  (其中[X]原是机器数,X是真值) • 定点整数原码表示的定义是:      [X]原=X             2n>X≥0 [X]原=2n-X=2n+|X|    0≥X>-2n (其中[X]原是机器数,X是真值) 真值:书写用的数 机器码:机器内部使用的数

  13. 2.1.2 数的机器码表示 • 原码 • 对于0,原码机器中有“+0”、“-0”之分,故有两种形式: • [+0]原=0.0000...0          [-0]原=1.0000...0 • 例如,X=+0.1001, 则[X]原=01001 X=-1001, 则[X]原=11001 • 优点:简单易懂 • 缺点:加减法运算复杂

  14. 2.1.2 数的机器码表示 • 补码 • 定点小数补码表示的定义是: [X]补=X             1>X≥0 [X]补=2+X=2-|X|    0≥X>-1    (mod 2) • 定点整数补码表示的定义是:  [X]补=X                  2n>X≥0    [X]补=2n+1+X=2n+1-|X|    0≥X>-2n   (mod  2n+1) [+0]补=[-0]补=0.00000的补码表示只有一种形式

  15. 2.1.2 数的机器码表示 • 反码 • 定点小数反码表示的定义是: [X]反=X                  1>X≥0 [X]反=(2-2-n)+X         0≥X>-1 • 定点整数反码表示的定义是: [X]反=X                 2n>X≥0 [X]反=(2n+1-1)+X        0≥X>-2n 补码和反码: 整数的反码和补码相同; 负数的补码是其反码末位加1

  16. 2.1.2 数的机器码表示 • 移码 • n+1位整数移码的定义是: [X]移=2n+X        2n>X≥-2n • 用于阶码的表示 • 例如: • 当正数x=+10101时,[X]移=110101 • 当负数x=-10101时,[X]移=25+X=25-10101=001011 [X]补与[X]移数码位相同,符号位相反

  17. 小结 • 数据格式 • 浮点数的表示方法(IEEE754标准) • 数的机器码表示 • 原码、反码、补码和移码 • 奇偶校验的概念

  18. 2.1.2 数的机器码表示 • 码制表示法小结 • [X]原、[X]反 、[X]补用“0”表示正号,用“1”表示负号; • 如果X为正数,则[X]原=[X]反=[X] 补。 • 如果X为0,则 [X]补 、[X]移有唯一编码, [X]原、[X]反 有两种编码。 • 移码与补码的形式相同,只是符号位相反。

  19. 作业答案

  20. 作业答案

  21. 复习提问 • 请以x=-0.1011为例简述求的负数的原码、反码、补码的方法(即写出X原、X反、X补)

  22. 2.1.3 字符与字符串的表示方法 • ASCII码:American standard code for information interchange美国信息交换标准码 • 每一个字符由8位表示,通常最高位为0,也可作为校验位。 • 0—31:控制字符(通信控制或功能控制)

  23. 2.1.3 字符与字符串的表示方法 • 字符串的表示 • 字符串:连续的一串字符,通常情况下,在主存中占用连续的多个字节,每个字节保存一个字符。 • 对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。 例如:IF A>B THEN READ(C)就可以有如下不同的存放方式(假设每个字由四个字节组成):

  24. 2.1.4 汉字的表示方法 • 汉字的输入编码 • 数字编码 • 拼音编码 • 字型编码 • 汉字内码 • 用于汉字信息的存储、交换、检索等操作的机内码,一般用两个字节表示。 • 汉字字模码 • 字模码是用点阵表示的汉字字形代码,是汉字的输出形式。 输入 存储 输出

  25. 2.1.5 校验码 • 奇偶校验 • 一位校验位/C • 数据发送端,设发送数据X=(x0x1…xn-1) • 奇校验位 /C = x0 x1 … xn-1 • 偶校验位C = x0 x1 … xn-1 • 数据接收端,接收到的数据X’=(x’0x’1…x’n-1C’) • F= x0 x1 … xn-1 C’ • 校验判断 • F=1:收到的信息有误 • F=0:收到的信息正确 • 奇偶校验只能检验奇数个错误,且无法识别错误信息的位置

  26. 2.1.5 校验码 • 奇偶校验 • [练习]已知下表中的数据,请分别用奇偶校验进行编码 奇(偶)校验位要保证编码中含有奇(偶)个1

  27. 2.2 定点加法减法运算 2.2.1 补码加法 [X]补+[Y]补=[X+Y]补 证明:(前提条件是:|x|<1, |y|<1, |x+y|<1) (1) x>0,y>0 则x+y>0 (2) x>0,y<0 则x+y>0 或x+y<0 [X]补=x, [Y]补=2+y 所以 [X]补+[Y]补=2+(x+y) 分两种情况: x+y>0 进位2丢失 x+y<0 根据补码定义 (3) x<0,y>0 同上种情况 (4) x<0,y<0 则x+y<0 [X]补+[Y]补=2+x+2+y =2+(2+x+y)= [X+Y]补 进位2丢失 补码定义

  28. 2.2.1 补码加法 [例]x=0.1001,y=0.0101,求x+y 解:      [x]补=0.1001    [y]补=0.0101                    [x]补0. 1 0 0 1                +   [y]补0. 0 1 0 1              ────────────── [x+y]补0. 1 1 1 0 所以 x+y=+0.1110 [例]x=+0.1011, y=-0.0101, 求x+y。  解:       [x]补=0.1011    [y]补=1.1011                  [x]补0. 1 0 1 1               +  [y]补1. 1 0 1 1              ────────────── [x+y]补1  0. 0 1 1 0 (在模2的意义下相加,有超过2的进位要丢掉) 所以 x+y=+0.0110

  29. 2.2.1 补码加法 • 练习:X1=-0.1001,X2=-0.0011,请用补码加法计算X1+X2(计算结果用原码表示)。 解: 1、计算[X1+X2]补 [X1]补=1.0111 [X2]补=1.1101 [X1+X2]补=1.0100 2、求[X1+X2]原 [X1+X2]原=1.1100 真值为-0.1100 由补码求原码(负数): 符号位不变,各数位取反,末位加1

  30. 2.2 定点加法减法运算 2.2.2 补码减法 [x-y]补=[x]补-[y]补=[x]补+[-y]补 证明:(只要证明 [-y]补= -[y]补) 因: [x+y]补=[x]补+[y]补 所以: [y]补= [x+y]补- [x]补 又因:[x-y]补= [x]补+[-y]补 所以: [-y]补= [x-y]补- [x]补 两式相加: [y]补+[-y]补=[x+y]补- [x]补+ [x-y]补- [x]补 =[x+y+x-y]补- [x]补- [x]补=0 所以: [-y]补= -[y]补 从[y]补求[-y]补的法则是: 对[y]补包括符号位“求反且最末位加1”,即:[-y]补= →[y]补+2-n

  31. 2.2.2 补码减法 [例]已知x1=-0.1110,x2=+0.1101, 求 [x1]补[-x1]补[x2]补[-x2]补。   解:   [x1]补=1.0010              [-x1]补= → [x1]补+2-4=0.1101+0.0001=0.1110               [x2]补=0.1101              [-x2]补= →[x2]补+2-4=1.0010+0.0001=1.0011

  32. 2.2.2 补码减法 [例] x=+0.1101,y=+0.0110,求x-y。   解:    [x]补=0.1101               [y]补=0.0110     [-y]补=1.1010                     [ x ]补0. 1 1 0 1               +    [-y]补1. 1 0 1 0              ────────────── [x-y]补1  0. 0 1 1 1 所以   x-y=+0.0111

  33. 2.2.3 溢出概念与检测方法 • 溢出概念:在定点小数机器中,数的表示范围为|X|<1.在运算过程中如出现大于1的现象,称为“溢出”。 [例]x=+0.1011,y=+0.1001,求x+y。            解:      [x]补=0.1011    [y]补=0.1001                    [x]补0. 1 0 1 1                +   [y]补0. 1 0 0 1 [x+y]补1. 0 1 0 0 • 两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 • 两个负数相加,结果小于机器所能表示的最小负数,称为下溢。

  34. 2.2.3 溢出概念与检测方法 • 检测方法 • 采用双符号位法,也称为“变形补码”或“模4补码”,从而可使模2补码所能表示的数的范围扩大一倍。 • 变形补码定义为: [x]补=x      当2>x≥0                    [x]补=4+x    当0>x≥-2

  35. 2.2.3 溢出概念与检测方法 • 检测方法 • 采用双符号位法 • 变形补码加法: • 两个符号位都看做数码一样参加运算; • 两数进行以4为模的加法时,最高符号位上产生的进位要丢掉。 • 采用变形补码,如果两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出。 • 最高符号位永远表示结果的正确符号。

  36. 2.2.3 溢出概念与检测方法 • 检测方法 • 双符号位法 [例] x=+1100,y=+1000,求x+y。 解:   [x]补=001100    [y]补=001000                    [x]补0 0 1 1 0 0               +   [y]补0 0 1 0 0 0 0 1 1 0 0 0 x=-1100,y=-1000,求x+y。             解:[x]补=110100    [y]补=111000                   [x]补1 1 0 1 0 0               +   [y]补1 1 1 0 0 0 1 0 1 1 0 0 两个符号位出现“01”,表示正溢出 两个符号位出现“10”,表示负溢出

  37. 2.2.3 溢出概念与检测方法 • 检测方法 • 双符号位法 • 结论 • 以变形补码运算时,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。 • 溢出逻辑表达式为:V=Sf1 Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位,此逻辑表达式可用异或门实现。 • 变形补码补码相加的结果,不论溢出与否,最高符号位始终表示正确的符号。

  38. 小结、作业 • 本节小结 • 补码加法、补码减法 • 运算溢出的判断 • 补码加法器的基本组成 • 课后作业: • 5、6

  39. 作业参考答案

  40. 复习提问 • 请简述补码加法、补码减法的计算公式。 • 请简述采用模4补码计算时溢出的判断规则。

  41. 2.2.3 溢出概念与检测方法 • 检测方法 • 采用单符号位法 • 当最高有效位产生进位而符号位无进位时,产生正溢; • 当最高有效位无进位而符号位有进位时,产生负溢。 • 溢出逻辑表达式为V=Cf C0,其中Cf为符号位产生的进位,C0为最高有效位产生的进位。此逻辑表达式可用异或门实现。

  42. & ≥ X0 Y0 S0 & 2.2.4 基本的二进制加法/减法器 • 设计步骤 • 写出真值表 • 根据真值表写出布尔表达式 • 设计逻辑电路 • 一位半加器

  43. 一位全加器的布尔表达式 一位全加器真值表 2.2.4 基本的二进制加法/减法器 • 设计步骤 • 一位全加器

  44. 2.2.4 基本的二进制加法/减法器 • 全加器电路图 一位全加器FA电路图

  45. 2.2.4 基本的二进制加法/减法器 • 全加器电路图

  46. 2.2.4 基本的二进制加法/减法器 • 全加器电路图 两个输入端A、B中输入的数据是补码形式,所以执行加法计算时直接A+B;当执行减法时,按照补码减法定义需要将B逐位取反并在末位加1,采用在B的每个数位中加1,并在最低位加1的方法实现。

  47. S0 S1 S3 S2 一位加法器(支持 或运算及与运算) 一位加法器(支持 或运算及与运算) 一位加法器(支持 或运算及与运算) 一位加法器(支持 或运算及与运算) C0 C1 C2 C3 C4 X0 Y0 X2 X3 X1 Y3 Y1 Y2 2.2.4 基本的二进制加法/减法器 • 全加器电路图 • 进位的计算 • 串行进位计算

  48. Sn 一位加法器(支持 或运算及与运算) Cn Cn+1 Xn Yn 2.2.4 基本的二进制加法/减法器 • 全加器电路图 • 进位的计算 • 并行进位计算 • 进位条件: • Xn和Yn都为1 • Xn、Yn的和为1且Cn为1 • 进位产生信号:Gi=Xi·Yi • 进位传递信号:Pi=Xi+Yi

  49. 2.2.4 基本的二进制加法/减法器 • 全加器电路图 • 进位的计算 • 并行进位计算 C1=X0·Y0+(X0+Y0)·C0 = G0+(P0·C0) C2=X1·Y1+(X1+Y1)·C1 = G1+(P1·G0) +(P1·P0·C0) C3=X2·Y2+(X2+Y2)·C2 = G2+(P2·G1) +(P2·P1·G0)+(P2·P1·P0·C0) C4=X3·Y3+(X3+Y3)·C3 = G3+(P3·G2) +(P3·P2·G1)+(P3·P2·P1·G0) +(P3·P2·P1·P0·C0) 只涉及最低位的进位C0

  50. 2.3 定点乘法运算 2.3.1 原码并行乘法 • 人工算法与机器算法的同异性 • 手工计算: • 乘积符号为相乘两数符号的异或值; • 数值为两数绝对值的乘积; • 结果是将符号位和数值连接起来。

More Related